/*
 * ProxMox VE API
 *
 * ProxMox VE API
 *
 * The version of the OpenAPI document: 2.0
 * Contact: support@lumaserv.com
 * Generated by: https://github.com/openapitools/openapi-generator.git
 */


using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Net;
using System.Net.Mime;
using ProxmoxSharp.Client;
using ProxmoxSharp.Model;

namespace ProxmoxSharp.Api
{

    /// <summary>
    /// Represents a collection of functions to interact with the API endpoints
    /// </summary>
    public interface IProxmoxGeneratedApiSync : IApiAccessor
    {
        #region Synchronous Operations
        /// <summary>
        /// addClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="addClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response AddClusterFirewallGroupRule(string group, AddClusterFirewallGroupRuleRequest addClusterFirewallGroupRuleRequest = default(AddClusterFirewallGroupRuleRequest), int operationIndex = 0);

        /// <summary>
        /// addClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="addClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> AddClusterFirewallGroupRuleWithHttpInfo(string group, AddClusterFirewallGroupRuleRequest addClusterFirewallGroupRuleRequest = default(AddClusterFirewallGroupRuleRequest), int operationIndex = 0);
        /// <summary>
        /// addClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="addClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response AddClusterFirewallIPSetIP(string name, AddClusterFirewallIPSetIPRequest addClusterFirewallIPSetIPRequest = default(AddClusterFirewallIPSetIPRequest), int operationIndex = 0);

        /// <summary>
        /// addClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="addClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> AddClusterFirewallIPSetIPWithHttpInfo(string name, AddClusterFirewallIPSetIPRequest addClusterFirewallIPSetIPRequest = default(AddClusterFirewallIPSetIPRequest), int operationIndex = 0);
        /// <summary>
        /// addClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="addClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response AddClusterFirewallRule(AddClusterFirewallRuleRequest addClusterFirewallRuleRequest = default(AddClusterFirewallRuleRequest), int operationIndex = 0);

        /// <summary>
        /// addClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="addClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> AddClusterFirewallRuleWithHttpInfo(AddClusterFirewallRuleRequest addClusterFirewallRuleRequest = default(AddClusterFirewallRuleRequest), int operationIndex = 0);
        /// <summary>
        /// addVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="addVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response AddVMFirewallIPSetIP(string name, string node, int vmid, AddVMFirewallIPSetIPRequest addVMFirewallIPSetIPRequest = default(AddVMFirewallIPSetIPRequest), int operationIndex = 0);

        /// <summary>
        /// addVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="addVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> AddVMFirewallIPSetIPWithHttpInfo(string name, string node, int vmid, AddVMFirewallIPSetIPRequest addVMFirewallIPSetIPRequest = default(AddVMFirewallIPSetIPRequest), int operationIndex = 0);
        /// <summary>
        /// cloneVM
        /// </summary>
        /// <remarks>
        /// Create a copy of virtual machine/template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="cloneVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CloneVM(string node, int vmid, CloneVMRequest cloneVMRequest = default(CloneVMRequest), int operationIndex = 0);

        /// <summary>
        /// cloneVM
        /// </summary>
        /// <remarks>
        /// Create a copy of virtual machine/template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="cloneVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CloneVMWithHttpInfo(string node, int vmid, CloneVMRequest cloneVMRequest = default(CloneVMRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessDomains
        /// </summary>
        /// <remarks>
        /// Add an authentication server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessDomainsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateAccessDomains(CreateAccessDomainsRequest createAccessDomainsRequest = default(CreateAccessDomainsRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessDomains
        /// </summary>
        /// <remarks>
        /// Add an authentication server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessDomainsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateAccessDomainsWithHttpInfo(CreateAccessDomainsRequest createAccessDomainsRequest = default(CreateAccessDomainsRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessDomainsSingleSync
        /// </summary>
        /// <remarks>
        /// Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name &#39;name-$realm&#39;, so make sure those groups do not exist to prevent overwriting.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="createAccessDomainsSingleSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessDomainsSingleSync200Response</returns>
        CreateAccessDomainsSingleSync200Response CreateAccessDomainsSingleSync(string realm, CreateAccessDomainsSingleSyncRequest createAccessDomainsSingleSyncRequest = default(CreateAccessDomainsSingleSyncRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessDomainsSingleSync
        /// </summary>
        /// <remarks>
        /// Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name &#39;name-$realm&#39;, so make sure those groups do not exist to prevent overwriting.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="createAccessDomainsSingleSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessDomainsSingleSync200Response</returns>
        ApiResponse<CreateAccessDomainsSingleSync200Response> CreateAccessDomainsSingleSyncWithHttpInfo(string realm, CreateAccessDomainsSingleSyncRequest createAccessDomainsSingleSyncRequest = default(CreateAccessDomainsSingleSyncRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessGroups
        /// </summary>
        /// <remarks>
        /// Create new group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateAccessGroups(CreateAccessGroupsRequest createAccessGroupsRequest = default(CreateAccessGroupsRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessGroups
        /// </summary>
        /// <remarks>
        /// Create new group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateAccessGroupsWithHttpInfo(CreateAccessGroupsRequest createAccessGroupsRequest = default(CreateAccessGroupsRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessOpenidAuthurl
        /// </summary>
        /// <remarks>
        /// Get the OpenId Authorization Url for the specified realm.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidAuthurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessOpenidAuthurl200Response</returns>
        CreateAccessOpenidAuthurl200Response CreateAccessOpenidAuthurl(CreateAccessOpenidAuthurlRequest createAccessOpenidAuthurlRequest = default(CreateAccessOpenidAuthurlRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessOpenidAuthurl
        /// </summary>
        /// <remarks>
        /// Get the OpenId Authorization Url for the specified realm.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidAuthurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessOpenidAuthurl200Response</returns>
        ApiResponse<CreateAccessOpenidAuthurl200Response> CreateAccessOpenidAuthurlWithHttpInfo(CreateAccessOpenidAuthurlRequest createAccessOpenidAuthurlRequest = default(CreateAccessOpenidAuthurlRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessOpenidLogin
        /// </summary>
        /// <remarks>
        ///  Verify OpenID authorization code and create a ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidLoginRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateAccessOpenidLogin(CreateAccessOpenidLoginRequest createAccessOpenidLoginRequest = default(CreateAccessOpenidLoginRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessOpenidLogin
        /// </summary>
        /// <remarks>
        ///  Verify OpenID authorization code and create a ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidLoginRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateAccessOpenidLoginWithHttpInfo(CreateAccessOpenidLoginRequest createAccessOpenidLoginRequest = default(CreateAccessOpenidLoginRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessRoles
        /// </summary>
        /// <remarks>
        /// Create new role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessRolesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateAccessRoles(CreateAccessRolesRequest createAccessRolesRequest = default(CreateAccessRolesRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessRoles
        /// </summary>
        /// <remarks>
        /// Create new role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessRolesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateAccessRolesWithHttpInfo(CreateAccessRolesRequest createAccessRolesRequest = default(CreateAccessRolesRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessTfaSingle
        /// </summary>
        /// <remarks>
        /// Add a TFA entry for a user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="createAccessTfaSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessTfaSingle200Response</returns>
        CreateAccessTfaSingle200Response CreateAccessTfaSingle(string userid, CreateAccessTfaSingleRequest createAccessTfaSingleRequest = default(CreateAccessTfaSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessTfaSingle
        /// </summary>
        /// <remarks>
        /// Add a TFA entry for a user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="createAccessTfaSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessTfaSingle200Response</returns>
        ApiResponse<CreateAccessTfaSingle200Response> CreateAccessTfaSingleWithHttpInfo(string userid, CreateAccessTfaSingleRequest createAccessTfaSingleRequest = default(CreateAccessTfaSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessTicket
        /// </summary>
        /// <remarks>
        /// Create or verify authentication ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessTicketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessTicket200Response</returns>
        CreateAccessTicket200Response CreateAccessTicket(CreateAccessTicketRequest createAccessTicketRequest = default(CreateAccessTicketRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessTicket
        /// </summary>
        /// <remarks>
        /// Create or verify authentication ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessTicketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessTicket200Response</returns>
        ApiResponse<CreateAccessTicket200Response> CreateAccessTicketWithHttpInfo(CreateAccessTicketRequest createAccessTicketRequest = default(CreateAccessTicketRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessUsers
        /// </summary>
        /// <remarks>
        /// Create new user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessUsersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateAccessUsers(CreateAccessUsersRequest createAccessUsersRequest = default(CreateAccessUsersRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessUsers
        /// </summary>
        /// <remarks>
        /// Create new user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessUsersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateAccessUsersWithHttpInfo(CreateAccessUsersRequest createAccessUsersRequest = default(CreateAccessUsersRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="createAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessUsersSingleTokenSingle200Response</returns>
        CreateAccessUsersSingleTokenSingle200Response CreateAccessUsersSingleTokenSingle(string tokenid, string userid, CreateAccessUsersSingleTokenSingleRequest createAccessUsersSingleTokenSingleRequest = default(CreateAccessUsersSingleTokenSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="createAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessUsersSingleTokenSingle200Response</returns>
        ApiResponse<CreateAccessUsersSingleTokenSingle200Response> CreateAccessUsersSingleTokenSingleWithHttpInfo(string tokenid, string userid, CreateAccessUsersSingleTokenSingleRequest createAccessUsersSingleTokenSingleRequest = default(CreateAccessUsersSingleTokenSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createAccessVncticket
        /// </summary>
        /// <remarks>
        /// verify VNC authentication ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessVncticketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateAccessVncticket(CreateAccessVncticketRequest createAccessVncticketRequest = default(CreateAccessVncticketRequest), int operationIndex = 0);

        /// <summary>
        /// createAccessVncticket
        /// </summary>
        /// <remarks>
        /// verify VNC authentication ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessVncticketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateAccessVncticketWithHttpInfo(CreateAccessVncticketRequest createAccessVncticketRequest = default(CreateAccessVncticketRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterAcmeAccount
        /// </summary>
        /// <remarks>
        /// Register a new ACME account with CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmeAccountRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterAcmeAccount(CreateClusterAcmeAccountRequest createClusterAcmeAccountRequest = default(CreateClusterAcmeAccountRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterAcmeAccount
        /// </summary>
        /// <remarks>
        /// Register a new ACME account with CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmeAccountRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterAcmeAccountWithHttpInfo(CreateClusterAcmeAccountRequest createClusterAcmeAccountRequest = default(CreateClusterAcmeAccountRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterAcmePlugins
        /// </summary>
        /// <remarks>
        /// Add ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmePluginsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterAcmePlugins(CreateClusterAcmePluginsRequest createClusterAcmePluginsRequest = default(CreateClusterAcmePluginsRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterAcmePlugins
        /// </summary>
        /// <remarks>
        /// Add ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmePluginsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterAcmePluginsWithHttpInfo(CreateClusterAcmePluginsRequest createClusterAcmePluginsRequest = default(CreateClusterAcmePluginsRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterBackup
        /// </summary>
        /// <remarks>
        /// Create new vzdump backup job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBackupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterBackup(CreateClusterBackupRequest createClusterBackupRequest = default(CreateClusterBackupRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterBackup
        /// </summary>
        /// <remarks>
        /// Create new vzdump backup job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBackupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterBackupWithHttpInfo(CreateClusterBackupRequest createClusterBackupRequest = default(CreateClusterBackupRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterBulkactionGuestMigrate
        /// </summary>
        /// <remarks>
        /// Bulk migrate all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterBulkactionGuestStart200Response</returns>
        CreateClusterBulkactionGuestStart200Response CreateClusterBulkactionGuestMigrate(CreateClusterBulkactionGuestMigrateRequest createClusterBulkactionGuestMigrateRequest = default(CreateClusterBulkactionGuestMigrateRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterBulkactionGuestMigrate
        /// </summary>
        /// <remarks>
        /// Bulk migrate all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterBulkactionGuestStart200Response</returns>
        ApiResponse<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestMigrateWithHttpInfo(CreateClusterBulkactionGuestMigrateRequest createClusterBulkactionGuestMigrateRequest = default(CreateClusterBulkactionGuestMigrateRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterBulkactionGuestShutdown
        /// </summary>
        /// <remarks>
        /// Bulk shutdown all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterBulkactionGuestStart200Response</returns>
        CreateClusterBulkactionGuestStart200Response CreateClusterBulkactionGuestShutdown(CreateClusterBulkactionGuestShutdownRequest createClusterBulkactionGuestShutdownRequest = default(CreateClusterBulkactionGuestShutdownRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterBulkactionGuestShutdown
        /// </summary>
        /// <remarks>
        /// Bulk shutdown all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterBulkactionGuestStart200Response</returns>
        ApiResponse<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestShutdownWithHttpInfo(CreateClusterBulkactionGuestShutdownRequest createClusterBulkactionGuestShutdownRequest = default(CreateClusterBulkactionGuestShutdownRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterBulkactionGuestStart
        /// </summary>
        /// <remarks>
        /// Bulk start or resume all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterBulkactionGuestStart200Response</returns>
        CreateClusterBulkactionGuestStart200Response CreateClusterBulkactionGuestStart(CreateClusterBulkactionGuestStartRequest createClusterBulkactionGuestStartRequest = default(CreateClusterBulkactionGuestStartRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterBulkactionGuestStart
        /// </summary>
        /// <remarks>
        /// Bulk start or resume all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterBulkactionGuestStart200Response</returns>
        ApiResponse<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestStartWithHttpInfo(CreateClusterBulkactionGuestStartRequest createClusterBulkactionGuestStartRequest = default(CreateClusterBulkactionGuestStartRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterBulkactionGuestSuspend
        /// </summary>
        /// <remarks>
        /// Bulk suspend all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestSuspendRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterBulkactionGuestStart200Response</returns>
        CreateClusterBulkactionGuestStart200Response CreateClusterBulkactionGuestSuspend(CreateClusterBulkactionGuestSuspendRequest createClusterBulkactionGuestSuspendRequest = default(CreateClusterBulkactionGuestSuspendRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterBulkactionGuestSuspend
        /// </summary>
        /// <remarks>
        /// Bulk suspend all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestSuspendRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterBulkactionGuestStart200Response</returns>
        ApiResponse<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestSuspendWithHttpInfo(CreateClusterBulkactionGuestSuspendRequest createClusterBulkactionGuestSuspendRequest = default(CreateClusterBulkactionGuestSuspendRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterConfig
        /// </summary>
        /// <remarks>
        /// Generate new cluster configuration. If no links given, default to local IP address as link0.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterConfig(CreateClusterConfigRequest createClusterConfigRequest = default(CreateClusterConfigRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterConfig
        /// </summary>
        /// <remarks>
        /// Generate new cluster configuration. If no links given, default to local IP address as link0.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterConfigWithHttpInfo(CreateClusterConfigRequest createClusterConfigRequest = default(CreateClusterConfigRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterConfigJoin
        /// </summary>
        /// <remarks>
        /// Joins this node into an existing cluster. If no links are given, default to IP resolved by node&#39;s hostname on single link (fallback fails for clusters with multiple links).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigJoinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterConfigJoin(CreateClusterConfigJoinRequest createClusterConfigJoinRequest = default(CreateClusterConfigJoinRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterConfigJoin
        /// </summary>
        /// <remarks>
        /// Joins this node into an existing cluster. If no links are given, default to IP resolved by node&#39;s hostname on single link (fallback fails for clusters with multiple links).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigJoinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterConfigJoinWithHttpInfo(CreateClusterConfigJoinRequest createClusterConfigJoinRequest = default(CreateClusterConfigJoinRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterConfigNodesSingle
        /// </summary>
        /// <remarks>
        /// Adds a node to the cluster configuration. This call is for internal use.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createClusterConfigNodesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterConfigNodesSingle200Response</returns>
        CreateClusterConfigNodesSingle200Response CreateClusterConfigNodesSingle(string node, CreateClusterConfigNodesSingleRequest createClusterConfigNodesSingleRequest = default(CreateClusterConfigNodesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterConfigNodesSingle
        /// </summary>
        /// <remarks>
        /// Adds a node to the cluster configuration. This call is for internal use.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createClusterConfigNodesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterConfigNodesSingle200Response</returns>
        ApiResponse<CreateClusterConfigNodesSingle200Response> CreateClusterConfigNodesSingleWithHttpInfo(string node, CreateClusterConfigNodesSingleRequest createClusterConfigNodesSingleRequest = default(CreateClusterConfigNodesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterFirewallAliases(CreateClusterFirewallAliasesRequest createClusterFirewallAliasesRequest = default(CreateClusterFirewallAliasesRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterFirewallAliasesWithHttpInfo(CreateClusterFirewallAliasesRequest createClusterFirewallAliasesRequest = default(CreateClusterFirewallAliasesRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterFirewallGroup
        /// </summary>
        /// <remarks>
        /// Create new security group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallGroupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterFirewallGroup(CreateClusterFirewallGroupRequest createClusterFirewallGroupRequest = default(CreateClusterFirewallGroupRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterFirewallGroup
        /// </summary>
        /// <remarks>
        /// Create new security group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallGroupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterFirewallGroupWithHttpInfo(CreateClusterFirewallGroupRequest createClusterFirewallGroupRequest = default(CreateClusterFirewallGroupRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterFirewallIPSet(CreateClusterFirewallIPSetRequest createClusterFirewallIPSetRequest = default(CreateClusterFirewallIPSetRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterFirewallIPSetWithHttpInfo(CreateClusterFirewallIPSetRequest createClusterFirewallIPSetRequest = default(CreateClusterFirewallIPSetRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterHaGroups
        /// </summary>
        /// <remarks>
        /// Create a new HA group. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterHaGroups(CreateClusterHaGroupsRequest createClusterHaGroupsRequest = default(CreateClusterHaGroupsRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterHaGroups
        /// </summary>
        /// <remarks>
        /// Create a new HA group. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterHaGroupsWithHttpInfo(CreateClusterHaGroupsRequest createClusterHaGroupsRequest = default(CreateClusterHaGroupsRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterHaResources
        /// </summary>
        /// <remarks>
        /// Create a new HA resource.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaResourcesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterHaResources(CreateClusterHaResourcesRequest createClusterHaResourcesRequest = default(CreateClusterHaResourcesRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterHaResources
        /// </summary>
        /// <remarks>
        /// Create a new HA resource.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaResourcesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterHaResourcesWithHttpInfo(CreateClusterHaResourcesRequest createClusterHaResourcesRequest = default(CreateClusterHaResourcesRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterHaResourcesSingleMigrate
        /// </summary>
        /// <remarks>
        /// Request resource migration (online) to another node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterHaResourcesSingleMigrate200Response</returns>
        CreateClusterHaResourcesSingleMigrate200Response CreateClusterHaResourcesSingleMigrate(string sid, CreateClusterHaResourcesSingleMigrateRequest createClusterHaResourcesSingleMigrateRequest = default(CreateClusterHaResourcesSingleMigrateRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterHaResourcesSingleMigrate
        /// </summary>
        /// <remarks>
        /// Request resource migration (online) to another node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterHaResourcesSingleMigrate200Response</returns>
        ApiResponse<CreateClusterHaResourcesSingleMigrate200Response> CreateClusterHaResourcesSingleMigrateWithHttpInfo(string sid, CreateClusterHaResourcesSingleMigrateRequest createClusterHaResourcesSingleMigrateRequest = default(CreateClusterHaResourcesSingleMigrateRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterHaResourcesSingleRelocate
        /// </summary>
        /// <remarks>
        /// Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleRelocateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterHaResourcesSingleRelocate200Response</returns>
        CreateClusterHaResourcesSingleRelocate200Response CreateClusterHaResourcesSingleRelocate(string sid, CreateClusterHaResourcesSingleRelocateRequest createClusterHaResourcesSingleRelocateRequest = default(CreateClusterHaResourcesSingleRelocateRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterHaResourcesSingleRelocate
        /// </summary>
        /// <remarks>
        /// Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleRelocateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterHaResourcesSingleRelocate200Response</returns>
        ApiResponse<CreateClusterHaResourcesSingleRelocate200Response> CreateClusterHaResourcesSingleRelocateWithHttpInfo(string sid, CreateClusterHaResourcesSingleRelocateRequest createClusterHaResourcesSingleRelocateRequest = default(CreateClusterHaResourcesSingleRelocateRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterHaRules
        /// </summary>
        /// <remarks>
        /// Create HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterHaRules(CreateClusterHaRulesRequest createClusterHaRulesRequest = default(CreateClusterHaRulesRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterHaRules
        /// </summary>
        /// <remarks>
        /// Create HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterHaRulesWithHttpInfo(CreateClusterHaRulesRequest createClusterHaRulesRequest = default(CreateClusterHaRulesRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Create new realm-sync job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterJobsRealmsyncSingle(string id, CreateClusterJobsRealmsyncSingleRequest createClusterJobsRealmsyncSingleRequest = default(CreateClusterJobsRealmsyncSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Create new realm-sync job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterJobsRealmsyncSingleWithHttpInfo(string id, CreateClusterJobsRealmsyncSingleRequest createClusterJobsRealmsyncSingleRequest = default(CreateClusterJobsRealmsyncSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterMappingDir
        /// </summary>
        /// <remarks>
        /// Create a new directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingDirRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterMappingDir(CreateClusterMappingDirRequest createClusterMappingDirRequest = default(CreateClusterMappingDirRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterMappingDir
        /// </summary>
        /// <remarks>
        /// Create a new directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingDirRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterMappingDirWithHttpInfo(CreateClusterMappingDirRequest createClusterMappingDirRequest = default(CreateClusterMappingDirRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterMappingPci
        /// </summary>
        /// <remarks>
        /// Create a new hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingPciRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterMappingPci(CreateClusterMappingPciRequest createClusterMappingPciRequest = default(CreateClusterMappingPciRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterMappingPci
        /// </summary>
        /// <remarks>
        /// Create a new hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingPciRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterMappingPciWithHttpInfo(CreateClusterMappingPciRequest createClusterMappingPciRequest = default(CreateClusterMappingPciRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterMappingUsb
        /// </summary>
        /// <remarks>
        /// Create a new hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingUsbRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterMappingUsb(CreateClusterMappingUsbRequest createClusterMappingUsbRequest = default(CreateClusterMappingUsbRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterMappingUsb
        /// </summary>
        /// <remarks>
        /// Create a new hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingUsbRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterMappingUsbWithHttpInfo(CreateClusterMappingUsbRequest createClusterMappingUsbRequest = default(CreateClusterMappingUsbRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Create a new external metric server config
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterMetricsServerSingle(string id, CreateClusterMetricsServerSingleRequest createClusterMetricsServerSingleRequest = default(CreateClusterMetricsServerSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Create a new external metric server config
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterMetricsServerSingleWithHttpInfo(string id, CreateClusterMetricsServerSingleRequest createClusterMetricsServerSingleRequest = default(CreateClusterMetricsServerSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterNotificationsEndpointsGotify
        /// </summary>
        /// <remarks>
        /// Create a new gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsGotifyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterNotificationsEndpointsGotify(CreateClusterNotificationsEndpointsGotifyRequest createClusterNotificationsEndpointsGotifyRequest = default(CreateClusterNotificationsEndpointsGotifyRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterNotificationsEndpointsGotify
        /// </summary>
        /// <remarks>
        /// Create a new gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsGotifyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsGotifyWithHttpInfo(CreateClusterNotificationsEndpointsGotifyRequest createClusterNotificationsEndpointsGotifyRequest = default(CreateClusterNotificationsEndpointsGotifyRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterNotificationsEndpointsSendmail
        /// </summary>
        /// <remarks>
        /// Create a new sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSendmailRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterNotificationsEndpointsSendmail(CreateClusterNotificationsEndpointsSendmailRequest createClusterNotificationsEndpointsSendmailRequest = default(CreateClusterNotificationsEndpointsSendmailRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterNotificationsEndpointsSendmail
        /// </summary>
        /// <remarks>
        /// Create a new sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSendmailRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsSendmailWithHttpInfo(CreateClusterNotificationsEndpointsSendmailRequest createClusterNotificationsEndpointsSendmailRequest = default(CreateClusterNotificationsEndpointsSendmailRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterNotificationsEndpointsSmtp
        /// </summary>
        /// <remarks>
        /// Create a new smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSmtpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterNotificationsEndpointsSmtp(CreateClusterNotificationsEndpointsSmtpRequest createClusterNotificationsEndpointsSmtpRequest = default(CreateClusterNotificationsEndpointsSmtpRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterNotificationsEndpointsSmtp
        /// </summary>
        /// <remarks>
        /// Create a new smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSmtpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsSmtpWithHttpInfo(CreateClusterNotificationsEndpointsSmtpRequest createClusterNotificationsEndpointsSmtpRequest = default(CreateClusterNotificationsEndpointsSmtpRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterNotificationsEndpointsWebhook
        /// </summary>
        /// <remarks>
        /// Create a new webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsWebhookRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterNotificationsEndpointsWebhook(CreateClusterNotificationsEndpointsWebhookRequest createClusterNotificationsEndpointsWebhookRequest = default(CreateClusterNotificationsEndpointsWebhookRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterNotificationsEndpointsWebhook
        /// </summary>
        /// <remarks>
        /// Create a new webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsWebhookRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsWebhookWithHttpInfo(CreateClusterNotificationsEndpointsWebhookRequest createClusterNotificationsEndpointsWebhookRequest = default(CreateClusterNotificationsEndpointsWebhookRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterNotificationsMatchers
        /// </summary>
        /// <remarks>
        /// Create a new matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsMatchersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterNotificationsMatchers(CreateClusterNotificationsMatchersRequest createClusterNotificationsMatchersRequest = default(CreateClusterNotificationsMatchersRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterNotificationsMatchers
        /// </summary>
        /// <remarks>
        /// Create a new matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsMatchersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsMatchersWithHttpInfo(CreateClusterNotificationsMatchersRequest createClusterNotificationsMatchersRequest = default(CreateClusterNotificationsMatchersRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterNotificationsTargetsSingleTest
        /// </summary>
        /// <remarks>
        /// Send a test notification to a provided target.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterNotificationsTargetsSingleTest(string name, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createClusterNotificationsTargetsSingleTest
        /// </summary>
        /// <remarks>
        /// Send a test notification to a provided target.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsTargetsSingleTestWithHttpInfo(string name, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createClusterReplication
        /// </summary>
        /// <remarks>
        /// Create a new replication job
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterReplicationRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterReplication(CreateClusterReplicationRequest createClusterReplicationRequest = default(CreateClusterReplicationRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterReplication
        /// </summary>
        /// <remarks>
        /// Create a new replication job
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterReplicationRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterReplicationWithHttpInfo(CreateClusterReplicationRequest createClusterReplicationRequest = default(CreateClusterReplicationRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSDNController
        /// </summary>
        /// <remarks>
        /// Create a new sdn controller object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSDNController(CreateClusterSDNControllerRequest createClusterSDNControllerRequest = default(CreateClusterSDNControllerRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSDNController
        /// </summary>
        /// <remarks>
        /// Create a new sdn controller object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSDNControllerWithHttpInfo(CreateClusterSDNControllerRequest createClusterSDNControllerRequest = default(CreateClusterSDNControllerRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Create a new sdn vnet object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSDNVnet(CreateClusterSDNVnetRequest createClusterSDNVnetRequest = default(CreateClusterSDNVnetRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Create a new sdn vnet object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSDNVnetWithHttpInfo(CreateClusterSDNVnetRequest createClusterSDNVnetRequest = default(CreateClusterSDNVnetRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Create a new sdn zone object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSDNZone(CreateClusterSDNZoneRequest createClusterSDNZoneRequest = default(CreateClusterSDNZoneRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Create a new sdn zone object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSDNZoneWithHttpInfo(CreateClusterSDNZoneRequest createClusterSDNZoneRequest = default(CreateClusterSDNZoneRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnDns
        /// </summary>
        /// <remarks>
        /// Create a new sdn dns object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnDns(CreateClusterSdnDnsRequest createClusterSdnDnsRequest = default(CreateClusterSdnDnsRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnDns
        /// </summary>
        /// <remarks>
        /// Create a new sdn dns object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnDnsWithHttpInfo(CreateClusterSdnDnsRequest createClusterSdnDnsRequest = default(CreateClusterSdnDnsRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnFabricsFabric
        /// </summary>
        /// <remarks>
        /// Add a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnFabricsFabricRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnFabricsFabric(CreateClusterSdnFabricsFabricRequest createClusterSdnFabricsFabricRequest = default(CreateClusterSdnFabricsFabricRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnFabricsFabric
        /// </summary>
        /// <remarks>
        /// Add a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnFabricsFabricRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnFabricsFabricWithHttpInfo(CreateClusterSdnFabricsFabricRequest createClusterSdnFabricsFabricRequest = default(CreateClusterSdnFabricsFabricRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnFabricsNodeSingle
        /// </summary>
        /// <remarks>
        /// Add a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="createClusterSdnFabricsNodeSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnFabricsNodeSingle(string fabricId, CreateClusterSdnFabricsNodeSingleRequest createClusterSdnFabricsNodeSingleRequest = default(CreateClusterSdnFabricsNodeSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnFabricsNodeSingle
        /// </summary>
        /// <remarks>
        /// Add a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="createClusterSdnFabricsNodeSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnFabricsNodeSingleWithHttpInfo(string fabricId, CreateClusterSdnFabricsNodeSingleRequest createClusterSdnFabricsNodeSingleRequest = default(CreateClusterSdnFabricsNodeSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnIpams
        /// </summary>
        /// <remarks>
        /// Create a new sdn ipam object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnIpamsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnIpams(CreateClusterSdnIpamsRequest createClusterSdnIpamsRequest = default(CreateClusterSdnIpamsRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnIpams
        /// </summary>
        /// <remarks>
        /// Create a new sdn ipam object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnIpamsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnIpamsWithHttpInfo(CreateClusterSdnIpamsRequest createClusterSdnIpamsRequest = default(CreateClusterSdnIpamsRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnLock
        /// </summary>
        /// <remarks>
        /// Acquire global lock for SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnLockRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnLock(CreateClusterSdnLockRequest createClusterSdnLockRequest = default(CreateClusterSdnLockRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnLock
        /// </summary>
        /// <remarks>
        /// Acquire global lock for SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnLockRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnLockWithHttpInfo(CreateClusterSdnLockRequest createClusterSdnLockRequest = default(CreateClusterSdnLockRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnRollback
        /// </summary>
        /// <remarks>
        /// Rollback pending changes to SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnRollback(CreateClusterSdnRollbackRequest createClusterSdnRollbackRequest = default(CreateClusterSdnRollbackRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnRollback
        /// </summary>
        /// <remarks>
        /// Rollback pending changes to SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnRollbackWithHttpInfo(CreateClusterSdnRollbackRequest createClusterSdnRollbackRequest = default(CreateClusterSdnRollbackRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnVnetsSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnVnetsSingleFirewallRules(string vnet, CreateClusterSdnVnetsSingleFirewallRulesRequest createClusterSdnVnetsSingleFirewallRulesRequest = default(CreateClusterSdnVnetsSingleFirewallRulesRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnVnetsSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleFirewallRulesWithHttpInfo(string vnet, CreateClusterSdnVnetsSingleFirewallRulesRequest createClusterSdnVnetsSingleFirewallRulesRequest = default(CreateClusterSdnVnetsSingleFirewallRulesRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Create IP Mapping in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnVnetsSingleIps(string vnet, CreateClusterSdnVnetsSingleIpsRequest createClusterSdnVnetsSingleIpsRequest = default(CreateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Create IP Mapping in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleIpsWithHttpInfo(string vnet, CreateClusterSdnVnetsSingleIpsRequest createClusterSdnVnetsSingleIpsRequest = default(CreateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0);
        /// <summary>
        /// createClusterSdnVnetsSingleSubnets
        /// </summary>
        /// <remarks>
        /// Create a new sdn subnet object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleSubnetsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateClusterSdnVnetsSingleSubnets(string vnet, CreateClusterSdnVnetsSingleSubnetsRequest createClusterSdnVnetsSingleSubnetsRequest = default(CreateClusterSdnVnetsSingleSubnetsRequest), int operationIndex = 0);

        /// <summary>
        /// createClusterSdnVnetsSingleSubnets
        /// </summary>
        /// <remarks>
        /// Create a new sdn subnet object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleSubnetsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleSubnetsWithHttpInfo(string vnet, CreateClusterSdnVnetsSingleSubnetsRequest createClusterSdnVnetsSingleSubnetsRequest = default(CreateClusterSdnVnetsSingleSubnetsRequest), int operationIndex = 0);
        /// <summary>
        /// createNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodeFirewallRule(string node, CreateNodeFirewallRuleRequest createNodeFirewallRuleRequest = default(CreateNodeFirewallRuleRequest), int operationIndex = 0);

        /// <summary>
        /// createNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodeFirewallRuleWithHttpInfo(string node, CreateNodeFirewallRuleRequest createNodeFirewallRuleRequest = default(CreateNodeFirewallRuleRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleAplinfo
        /// </summary>
        /// <remarks>
        /// Download appliance templates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAplinfoRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleAplinfo(string node, CreateNodesSingleAplinfoRequest createNodesSingleAplinfoRequest = default(CreateNodesSingleAplinfoRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleAplinfo
        /// </summary>
        /// <remarks>
        /// Download appliance templates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAplinfoRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleAplinfoWithHttpInfo(string node, CreateNodesSingleAplinfoRequest createNodesSingleAplinfoRequest = default(CreateNodesSingleAplinfoRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Change the properties of a repository. Currently only allows enabling/disabling.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleAptRepositories(string node, CreateNodesSingleAptRepositoriesRequest createNodesSingleAptRepositoriesRequest = default(CreateNodesSingleAptRepositoriesRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Change the properties of a repository. Currently only allows enabling/disabling.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleAptRepositoriesWithHttpInfo(string node, CreateNodesSingleAptRepositoriesRequest createNodesSingleAptRepositoriesRequest = default(CreateNodesSingleAptRepositoriesRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleAptUpdate
        /// </summary>
        /// <remarks>
        /// This is used to resynchronize the package index files from their sources (apt-get update).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptUpdateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleAptUpdate(string node, CreateNodesSingleAptUpdateRequest createNodesSingleAptUpdateRequest = default(CreateNodesSingleAptUpdateRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleAptUpdate
        /// </summary>
        /// <remarks>
        /// This is used to resynchronize the package index files from their sources (apt-get update).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptUpdateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleAptUpdateWithHttpInfo(string node, CreateNodesSingleAptUpdateRequest createNodesSingleAptUpdateRequest = default(CreateNodesSingleAptUpdateRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephFsSingle
        /// </summary>
        /// <remarks>
        /// Create a Ceph filesystem
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephFsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephFsSingle(string name, string node, CreateNodesSingleCephFsSingleRequest createNodesSingleCephFsSingleRequest = default(CreateNodesSingleCephFsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephFsSingle
        /// </summary>
        /// <remarks>
        /// Create a Ceph filesystem
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephFsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephFsSingleWithHttpInfo(string name, string node, CreateNodesSingleCephFsSingleRequest createNodesSingleCephFsSingleRequest = default(CreateNodesSingleCephFsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephInit
        /// </summary>
        /// <remarks>
        /// Create initial ceph default configuration and setup symlinks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephInitRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephInit(string node, CreateNodesSingleCephInitRequest createNodesSingleCephInitRequest = default(CreateNodesSingleCephInitRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephInit
        /// </summary>
        /// <remarks>
        /// Create initial ceph default configuration and setup symlinks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephInitRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephInitWithHttpInfo(string node, CreateNodesSingleCephInitRequest createNodesSingleCephInitRequest = default(CreateNodesSingleCephInitRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephMdsSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Metadata Server (MDS)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMdsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephMdsSingle(string name, string node, CreateNodesSingleCephMdsSingleRequest createNodesSingleCephMdsSingleRequest = default(CreateNodesSingleCephMdsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephMdsSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Metadata Server (MDS)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMdsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephMdsSingleWithHttpInfo(string name, string node, CreateNodesSingleCephMdsSingleRequest createNodesSingleCephMdsSingleRequest = default(CreateNodesSingleCephMdsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephMgrSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Manager
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephMgrSingle(string id, string node, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephMgrSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Manager
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephMgrSingleWithHttpInfo(string id, string node, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephMonSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Monitor and Manager
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMonSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephMonSingle(string monid, string node, CreateNodesSingleCephMonSingleRequest createNodesSingleCephMonSingleRequest = default(CreateNodesSingleCephMonSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephMonSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Monitor and Manager
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMonSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephMonSingleWithHttpInfo(string monid, string node, CreateNodesSingleCephMonSingleRequest createNodesSingleCephMonSingleRequest = default(CreateNodesSingleCephMonSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephOsd
        /// </summary>
        /// <remarks>
        /// Create OSD
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephOsdRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephOsd(string node, CreateNodesSingleCephOsdRequest createNodesSingleCephOsdRequest = default(CreateNodesSingleCephOsdRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephOsd
        /// </summary>
        /// <remarks>
        /// Create OSD
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephOsdRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephOsdWithHttpInfo(string node, CreateNodesSingleCephOsdRequest createNodesSingleCephOsdRequest = default(CreateNodesSingleCephOsdRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephOsdSingleIn
        /// </summary>
        /// <remarks>
        /// ceph osd in
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephOsdSingleIn(string node, int osdid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephOsdSingleIn
        /// </summary>
        /// <remarks>
        /// ceph osd in
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleInWithHttpInfo(string node, int osdid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephOsdSingleOut
        /// </summary>
        /// <remarks>
        /// ceph osd out
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephOsdSingleOut(string node, int osdid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephOsdSingleOut
        /// </summary>
        /// <remarks>
        /// ceph osd out
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleOutWithHttpInfo(string node, int osdid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephOsdSingleScrub
        /// </summary>
        /// <remarks>
        /// Instruct the OSD to scrub.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="createNodesSingleCephOsdSingleScrubRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephOsdSingleScrub(string node, int osdid, CreateNodesSingleCephOsdSingleScrubRequest createNodesSingleCephOsdSingleScrubRequest = default(CreateNodesSingleCephOsdSingleScrubRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephOsdSingleScrub
        /// </summary>
        /// <remarks>
        /// Instruct the OSD to scrub.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="createNodesSingleCephOsdSingleScrubRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleScrubWithHttpInfo(string node, int osdid, CreateNodesSingleCephOsdSingleScrubRequest createNodesSingleCephOsdSingleScrubRequest = default(CreateNodesSingleCephOsdSingleScrubRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephPool
        /// </summary>
        /// <remarks>
        /// Create Ceph pool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephPool(string node, CreateNodesSingleCephPoolRequest createNodesSingleCephPoolRequest = default(CreateNodesSingleCephPoolRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephPool
        /// </summary>
        /// <remarks>
        /// Create Ceph pool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephPoolWithHttpInfo(string node, CreateNodesSingleCephPoolRequest createNodesSingleCephPoolRequest = default(CreateNodesSingleCephPoolRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephRestart
        /// </summary>
        /// <remarks>
        /// Restart ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephRestartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephRestart(string node, CreateNodesSingleCephRestartRequest createNodesSingleCephRestartRequest = default(CreateNodesSingleCephRestartRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephRestart
        /// </summary>
        /// <remarks>
        /// Restart ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephRestartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephRestartWithHttpInfo(string node, CreateNodesSingleCephRestartRequest createNodesSingleCephRestartRequest = default(CreateNodesSingleCephRestartRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephStart
        /// </summary>
        /// <remarks>
        /// Start ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephStart(string node, CreateNodesSingleCephStartRequest createNodesSingleCephStartRequest = default(CreateNodesSingleCephStartRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephStart
        /// </summary>
        /// <remarks>
        /// Start ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephStartWithHttpInfo(string node, CreateNodesSingleCephStartRequest createNodesSingleCephStartRequest = default(CreateNodesSingleCephStartRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCephStop
        /// </summary>
        /// <remarks>
        /// Stop ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCephStop(string node, CreateNodesSingleCephStopRequest createNodesSingleCephStopRequest = default(CreateNodesSingleCephStopRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCephStop
        /// </summary>
        /// <remarks>
        /// Stop ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephStopWithHttpInfo(string node, CreateNodesSingleCephStopRequest createNodesSingleCephStopRequest = default(CreateNodesSingleCephStopRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Order a new certificate from ACME-compatible CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleCertificatesAcmeCertificate(string node, CreateNodesSingleCertificatesAcmeCertificateRequest createNodesSingleCertificatesAcmeCertificateRequest = default(CreateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Order a new certificate from ACME-compatible CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCertificatesAcmeCertificateWithHttpInfo(string node, CreateNodesSingleCertificatesAcmeCertificateRequest createNodesSingleCertificatesAcmeCertificateRequest = default(CreateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleCertificatesCustom
        /// </summary>
        /// <remarks>
        /// Upload or update custom certificate chain and key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesCustomRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleCertificatesCustom200Response</returns>
        CreateNodesSingleCertificatesCustom200Response CreateNodesSingleCertificatesCustom(string node, CreateNodesSingleCertificatesCustomRequest createNodesSingleCertificatesCustomRequest = default(CreateNodesSingleCertificatesCustomRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleCertificatesCustom
        /// </summary>
        /// <remarks>
        /// Upload or update custom certificate chain and key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesCustomRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleCertificatesCustom200Response</returns>
        ApiResponse<CreateNodesSingleCertificatesCustom200Response> CreateNodesSingleCertificatesCustomWithHttpInfo(string node, CreateNodesSingleCertificatesCustomRequest createNodesSingleCertificatesCustomRequest = default(CreateNodesSingleCertificatesCustomRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleDisksDirectory
        /// </summary>
        /// <remarks>
        /// Create a Filesystem on an unused disk. Will be mounted under &#39;/mnt/pve/NAME&#39;.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksDirectoryRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleDisksDirectory(string node, CreateNodesSingleDisksDirectoryRequest createNodesSingleDisksDirectoryRequest = default(CreateNodesSingleDisksDirectoryRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleDisksDirectory
        /// </summary>
        /// <remarks>
        /// Create a Filesystem on an unused disk. Will be mounted under &#39;/mnt/pve/NAME&#39;.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksDirectoryRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksDirectoryWithHttpInfo(string node, CreateNodesSingleDisksDirectoryRequest createNodesSingleDisksDirectoryRequest = default(CreateNodesSingleDisksDirectoryRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleDisksInitgpt
        /// </summary>
        /// <remarks>
        /// Initialize Disk with GPT
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksInitgptRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleDisksInitgpt(string node, CreateNodesSingleDisksInitgptRequest createNodesSingleDisksInitgptRequest = default(CreateNodesSingleDisksInitgptRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleDisksInitgpt
        /// </summary>
        /// <remarks>
        /// Initialize Disk with GPT
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksInitgptRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksInitgptWithHttpInfo(string node, CreateNodesSingleDisksInitgptRequest createNodesSingleDisksInitgptRequest = default(CreateNodesSingleDisksInitgptRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleDisksLvm
        /// </summary>
        /// <remarks>
        /// Create an LVM Volume Group
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleDisksLvm(string node, CreateNodesSingleDisksLvmRequest createNodesSingleDisksLvmRequest = default(CreateNodesSingleDisksLvmRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleDisksLvm
        /// </summary>
        /// <remarks>
        /// Create an LVM Volume Group
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksLvmWithHttpInfo(string node, CreateNodesSingleDisksLvmRequest createNodesSingleDisksLvmRequest = default(CreateNodesSingleDisksLvmRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleDisksLvmthin
        /// </summary>
        /// <remarks>
        /// Create an LVM thinpool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmthinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleDisksLvmthin(string node, CreateNodesSingleDisksLvmthinRequest createNodesSingleDisksLvmthinRequest = default(CreateNodesSingleDisksLvmthinRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleDisksLvmthin
        /// </summary>
        /// <remarks>
        /// Create an LVM thinpool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmthinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksLvmthinWithHttpInfo(string node, CreateNodesSingleDisksLvmthinRequest createNodesSingleDisksLvmthinRequest = default(CreateNodesSingleDisksLvmthinRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleDisksZfs
        /// </summary>
        /// <remarks>
        /// Create a ZFS pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksZfsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleDisksZfs(string node, CreateNodesSingleDisksZfsRequest createNodesSingleDisksZfsRequest = default(CreateNodesSingleDisksZfsRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleDisksZfs
        /// </summary>
        /// <remarks>
        /// Create a ZFS pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksZfsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksZfsWithHttpInfo(string node, CreateNodesSingleDisksZfsRequest createNodesSingleDisksZfsRequest = default(CreateNodesSingleDisksZfsRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleExecute
        /// </summary>
        /// <remarks>
        /// Execute multiple commands in order, root only.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleExecuteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response CreateNodesSingleExecute(string node, CreateNodesSingleExecuteRequest createNodesSingleExecuteRequest = default(CreateNodesSingleExecuteRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleExecute
        /// </summary>
        /// <remarks>
        /// Execute multiple commands in order, root only.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleExecuteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> CreateNodesSingleExecuteWithHttpInfo(string node, CreateNodesSingleExecuteRequest createNodesSingleExecuteRequest = default(CreateNodesSingleExecuteRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleHosts
        /// </summary>
        /// <remarks>
        /// Write /etc/hosts.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleHostsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleHosts(string node, CreateNodesSingleHostsRequest createNodesSingleHostsRequest = default(CreateNodesSingleHostsRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleHosts
        /// </summary>
        /// <remarks>
        /// Write /etc/hosts.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleHostsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleHostsWithHttpInfo(string node, CreateNodesSingleHostsRequest createNodesSingleHostsRequest = default(CreateNodesSingleHostsRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxc
        /// </summary>
        /// <remarks>
        /// Create or restore a container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleLxcRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxc(string node, CreateNodesSingleLxcRequest createNodesSingleLxcRequest = default(CreateNodesSingleLxcRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxc
        /// </summary>
        /// <remarks>
        /// Create or restore a container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleLxcRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcWithHttpInfo(string node, CreateNodesSingleLxcRequest createNodesSingleLxcRequest = default(CreateNodesSingleLxcRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleClone
        /// </summary>
        /// <remarks>
        /// Create a container clone/copy
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleCloneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleClone(string node, int vmid, CreateNodesSingleLxcSingleCloneRequest createNodesSingleLxcSingleCloneRequest = default(CreateNodesSingleLxcSingleCloneRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleClone
        /// </summary>
        /// <remarks>
        /// Create a container clone/copy
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleCloneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleCloneWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleCloneRequest createNodesSingleLxcSingleCloneRequest = default(CreateNodesSingleLxcSingleCloneRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleFirewallAliases(string node, int vmid, CreateNodesSingleLxcSingleFirewallAliasesRequest createNodesSingleLxcSingleFirewallAliasesRequest = default(CreateNodesSingleLxcSingleFirewallAliasesRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallAliasesWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleFirewallAliasesRequest createNodesSingleLxcSingleFirewallAliasesRequest = default(CreateNodesSingleLxcSingleFirewallAliasesRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpset
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleFirewallIpset(string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetRequest createNodesSingleLxcSingleFirewallIpsetRequest = default(CreateNodesSingleLxcSingleFirewallIpsetRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpset
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallIpsetWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetRequest createNodesSingleLxcSingleFirewallIpsetRequest = default(CreateNodesSingleLxcSingleFirewallIpsetRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleFirewallIpsetSingle(string name, string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetSingleRequest createNodesSingleLxcSingleFirewallIpsetSingleRequest = default(CreateNodesSingleLxcSingleFirewallIpsetSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(string name, string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetSingleRequest createNodesSingleLxcSingleFirewallIpsetSingleRequest = default(CreateNodesSingleLxcSingleFirewallIpsetSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleFirewallRules(string node, int vmid, CreateNodesSingleLxcSingleFirewallRulesRequest createNodesSingleLxcSingleFirewallRulesRequest = default(CreateNodesSingleLxcSingleFirewallRulesRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallRulesWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleFirewallRulesRequest createNodesSingleLxcSingleFirewallRulesRequest = default(CreateNodesSingleLxcSingleFirewallRulesRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleMigrate
        /// </summary>
        /// <remarks>
        /// Migrate the container to another node. Creates a new migration task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleLxcSingleMigrate(string node, int vmid, CreateNodesSingleLxcSingleMigrateRequest createNodesSingleLxcSingleMigrateRequest = default(CreateNodesSingleLxcSingleMigrateRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleMigrate
        /// </summary>
        /// <remarks>
        /// Migrate the container to another node. Creates a new migration task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleMigrateWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleMigrateRequest createNodesSingleLxcSingleMigrateRequest = default(CreateNodesSingleLxcSingleMigrateRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleMovevolume
        /// </summary>
        /// <remarks>
        /// Move a rootfs-/mp-volume to a different storage or to a different container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMovevolumeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleMovevolume(string node, int vmid, CreateNodesSingleLxcSingleMovevolumeRequest createNodesSingleLxcSingleMovevolumeRequest = default(CreateNodesSingleLxcSingleMovevolumeRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleMovevolume
        /// </summary>
        /// <remarks>
        /// Move a rootfs-/mp-volume to a different storage or to a different container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMovevolumeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleMovevolumeWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleMovevolumeRequest createNodesSingleLxcSingleMovevolumeRequest = default(CreateNodesSingleLxcSingleMovevolumeRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleMtunnel
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint - only for internal use by CT migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleMtunnel(string node, int vmid, CreateNodesSingleLxcSingleMtunnelRequest createNodesSingleLxcSingleMtunnelRequest = default(CreateNodesSingleLxcSingleMtunnelRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleMtunnel
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint - only for internal use by CT migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleMtunnelWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleMtunnelRequest createNodesSingleLxcSingleMtunnelRequest = default(CreateNodesSingleLxcSingleMtunnelRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleRemotemigrate
        /// </summary>
        /// <remarks>
        /// Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleLxcSingleRemotemigrate(string node, int vmid, CreateNodesSingleLxcSingleRemotemigrateRequest createNodesSingleLxcSingleRemotemigrateRequest = default(CreateNodesSingleLxcSingleRemotemigrateRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleRemotemigrate
        /// </summary>
        /// <remarks>
        /// Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleRemotemigrateWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleRemotemigrateRequest createNodesSingleLxcSingleRemotemigrateRequest = default(CreateNodesSingleLxcSingleRemotemigrateRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleSnapshot
        /// </summary>
        /// <remarks>
        /// Snapshot a container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleLxcSingleSnapshot(string node, int vmid, CreateNodesSingleLxcSingleSnapshotRequest createNodesSingleLxcSingleSnapshotRequest = default(CreateNodesSingleLxcSingleSnapshotRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleSnapshot
        /// </summary>
        /// <remarks>
        /// Snapshot a container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleSnapshotWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleSnapshotRequest createNodesSingleLxcSingleSnapshotRequest = default(CreateNodesSingleLxcSingleSnapshotRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleSnapshotSingleRollback
        /// </summary>
        /// <remarks>
        /// Rollback LXC state to specified snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotSingleRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleLxcSingleSnapshotSingleRollback(string node, string snapname, int vmid, CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest createNodesSingleLxcSingleSnapshotSingleRollbackRequest = default(CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleSnapshotSingleRollback
        /// </summary>
        /// <remarks>
        /// Rollback LXC state to specified snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotSingleRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleSnapshotSingleRollbackWithHttpInfo(string node, string snapname, int vmid, CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest createNodesSingleLxcSingleSnapshotSingleRollbackRequest = default(CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleSpiceproxy
        /// </summary>
        /// <remarks>
        /// Returns a SPICE configuration to connect to the CT.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        CreateNodesSingleQemuSingleSpiceproxy200Response CreateNodesSingleLxcSingleSpiceproxy(string node, int vmid, CreateNodesSingleLxcSingleSpiceproxyRequest createNodesSingleLxcSingleSpiceproxyRequest = default(CreateNodesSingleLxcSingleSpiceproxyRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleSpiceproxy
        /// </summary>
        /// <remarks>
        /// Returns a SPICE configuration to connect to the CT.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleLxcSingleSpiceproxyWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleSpiceproxyRequest createNodesSingleLxcSingleSpiceproxyRequest = default(CreateNodesSingleLxcSingleSpiceproxyRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleStatusReboot
        /// </summary>
        /// <remarks>
        /// Reboot the container by shutting it down, and starting it again. Applies pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusRebootRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusReboot(string node, int vmid, CreateNodesSingleLxcSingleStatusRebootRequest createNodesSingleLxcSingleStatusRebootRequest = default(CreateNodesSingleLxcSingleStatusRebootRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleStatusReboot
        /// </summary>
        /// <remarks>
        /// Reboot the container by shutting it down, and starting it again. Applies pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusRebootRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusRebootWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleStatusRebootRequest createNodesSingleLxcSingleStatusRebootRequest = default(CreateNodesSingleLxcSingleStatusRebootRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleStatusResume
        /// </summary>
        /// <remarks>
        /// Resume the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusResume(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleStatusResume
        /// </summary>
        /// <remarks>
        /// Resume the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusResumeWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleStatusShutdown
        /// </summary>
        /// <remarks>
        /// Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusShutdown(string node, int vmid, CreateNodesSingleLxcSingleStatusShutdownRequest createNodesSingleLxcSingleStatusShutdownRequest = default(CreateNodesSingleLxcSingleStatusShutdownRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleStatusShutdown
        /// </summary>
        /// <remarks>
        /// Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusShutdownWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleStatusShutdownRequest createNodesSingleLxcSingleStatusShutdownRequest = default(CreateNodesSingleLxcSingleStatusShutdownRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleStatusStart
        /// </summary>
        /// <remarks>
        /// Start the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusStart(string node, int vmid, CreateNodesSingleLxcSingleStatusStartRequest createNodesSingleLxcSingleStatusStartRequest = default(CreateNodesSingleLxcSingleStatusStartRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleStatusStart
        /// </summary>
        /// <remarks>
        /// Start the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusStartWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleStatusStartRequest createNodesSingleLxcSingleStatusStartRequest = default(CreateNodesSingleLxcSingleStatusStartRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleStatusStop
        /// </summary>
        /// <remarks>
        /// Stop the container. This will abruptly stop all processes running in the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusStop(string node, int vmid, CreateNodesSingleLxcSingleStatusStopRequest createNodesSingleLxcSingleStatusStopRequest = default(CreateNodesSingleLxcSingleStatusStopRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleStatusStop
        /// </summary>
        /// <remarks>
        /// Stop the container. This will abruptly stop all processes running in the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusStopWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleStatusStopRequest createNodesSingleLxcSingleStatusStopRequest = default(CreateNodesSingleLxcSingleStatusStopRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleStatusSuspend
        /// </summary>
        /// <remarks>
        /// Suspend the container. This is experimental.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusSuspend(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleStatusSuspend
        /// </summary>
        /// <remarks>
        /// Suspend the container. This is experimental.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusSuspendWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleTemplate
        /// </summary>
        /// <remarks>
        /// Create a Template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleTemplate(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleTemplate
        /// </summary>
        /// <remarks>
        /// Create a Template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleTemplateWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP proxy connection.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleTermproxy(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP proxy connection.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleTermproxyWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleLxcSingleVncproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP VNC proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleLxcSingleVncproxy(string node, int vmid, CreateNodesSingleLxcSingleVncproxyRequest createNodesSingleLxcSingleVncproxyRequest = default(CreateNodesSingleLxcSingleVncproxyRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleLxcSingleVncproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP VNC proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleVncproxyWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleVncproxyRequest createNodesSingleLxcSingleVncproxyRequest = default(CreateNodesSingleLxcSingleVncproxyRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleMigrateall
        /// </summary>
        /// <remarks>
        /// Migrate all VMs and Containers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleMigrateallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleMigrateall(string node, CreateNodesSingleMigrateallRequest createNodesSingleMigrateallRequest = default(CreateNodesSingleMigrateallRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleMigrateall
        /// </summary>
        /// <remarks>
        /// Migrate all VMs and Containers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleMigrateallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleMigrateallWithHttpInfo(string node, CreateNodesSingleMigrateallRequest createNodesSingleMigrateallRequest = default(CreateNodesSingleMigrateallRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Create network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleNetwork(string node, CreateNodesSingleNetworkRequest createNodesSingleNetworkRequest = default(CreateNodesSingleNetworkRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Create network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleNetworkWithHttpInfo(string node, CreateNodesSingleNetworkRequest createNodesSingleNetworkRequest = default(CreateNodesSingleNetworkRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgent
        /// </summary>
        /// <remarks>
        /// Execute QEMU Guest Agent commands.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgent(string node, int vmid, CreateNodesSingleQemuSingleAgentRequest createNodesSingleQemuSingleAgentRequest = default(CreateNodesSingleQemuSingleAgentRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgent
        /// </summary>
        /// <remarks>
        /// Execute QEMU Guest Agent commands.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleAgentRequest createNodesSingleQemuSingleAgentRequest = default(CreateNodesSingleQemuSingleAgentRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentExec
        /// </summary>
        /// <remarks>
        /// Executes the given command in the vm via the guest-agent and returns an object with the pid.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentExecRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgentExec200Response</returns>
        CreateNodesSingleQemuSingleAgentExec200Response CreateNodesSingleQemuSingleAgentExec(string node, int vmid, CreateNodesSingleQemuSingleAgentExecRequest createNodesSingleQemuSingleAgentExecRequest = default(CreateNodesSingleQemuSingleAgentExecRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentExec
        /// </summary>
        /// <remarks>
        /// Executes the given command in the vm via the guest-agent and returns an object with the pid.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentExecRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgentExec200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgentExec200Response> CreateNodesSingleQemuSingleAgentExecWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleAgentExecRequest createNodesSingleQemuSingleAgentExecRequest = default(CreateNodesSingleQemuSingleAgentExecRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentFilewrite
        /// </summary>
        /// <remarks>
        /// Writes the given file via guest agent.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentFilewriteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleQemuSingleAgentFilewrite(string node, int vmid, CreateNodesSingleQemuSingleAgentFilewriteRequest createNodesSingleQemuSingleAgentFilewriteRequest = default(CreateNodesSingleQemuSingleAgentFilewriteRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentFilewrite
        /// </summary>
        /// <remarks>
        /// Writes the given file via guest agent.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentFilewriteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleAgentFilewriteWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleAgentFilewriteRequest createNodesSingleQemuSingleAgentFilewriteRequest = default(CreateNodesSingleQemuSingleAgentFilewriteRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezefreeze
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-freeze.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentFsfreezefreeze(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezefreeze
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-freeze.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezefreezeWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezestatus
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentFsfreezestatus(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezestatus
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezestatusWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezethaw
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-thaw.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentFsfreezethaw(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezethaw
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-thaw.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezethawWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentFstrim
        /// </summary>
        /// <remarks>
        /// Execute fstrim.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentFstrim(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentFstrim
        /// </summary>
        /// <remarks>
        /// Execute fstrim.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFstrimWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentPing
        /// </summary>
        /// <remarks>
        /// Execute ping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentPing(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentPing
        /// </summary>
        /// <remarks>
        /// Execute ping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentPingWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentSetuserpassword
        /// </summary>
        /// <remarks>
        /// Sets the password for the given user to the given password
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentSetuserpasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentSetuserpassword(string node, int vmid, CreateNodesSingleQemuSingleAgentSetuserpasswordRequest createNodesSingleQemuSingleAgentSetuserpasswordRequest = default(CreateNodesSingleQemuSingleAgentSetuserpasswordRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentSetuserpassword
        /// </summary>
        /// <remarks>
        /// Sets the password for the given user to the given password
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentSetuserpasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSetuserpasswordWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleAgentSetuserpasswordRequest createNodesSingleQemuSingleAgentSetuserpasswordRequest = default(CreateNodesSingleQemuSingleAgentSetuserpasswordRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentShutdown
        /// </summary>
        /// <remarks>
        /// Execute shutdown.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentShutdown(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentShutdown
        /// </summary>
        /// <remarks>
        /// Execute shutdown.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentShutdownWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspenddisk
        /// </summary>
        /// <remarks>
        /// Execute suspend-disk.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentSuspenddisk(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspenddisk
        /// </summary>
        /// <remarks>
        /// Execute suspend-disk.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspenddiskWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendhybrid
        /// </summary>
        /// <remarks>
        /// Execute suspend-hybrid.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentSuspendhybrid(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendhybrid
        /// </summary>
        /// <remarks>
        /// Execute suspend-hybrid.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspendhybridWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendram
        /// </summary>
        /// <remarks>
        /// Execute suspend-ram.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentSuspendram(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendram
        /// </summary>
        /// <remarks>
        /// Execute suspend-ram.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspendramWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleDbusvmstate
        /// </summary>
        /// <remarks>
        /// Control the dbus-vmstate helper for a given running VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleDbusvmstateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleQemuSingleDbusvmstate(string node, int vmid, CreateNodesSingleQemuSingleDbusvmstateRequest createNodesSingleQemuSingleDbusvmstateRequest = default(CreateNodesSingleQemuSingleDbusvmstateRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleDbusvmstate
        /// </summary>
        /// <remarks>
        /// Control the dbus-vmstate helper for a given running VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleDbusvmstateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleDbusvmstateWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleDbusvmstateRequest createNodesSingleQemuSingleDbusvmstateRequest = default(CreateNodesSingleQemuSingleDbusvmstateRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleQemuSingleFirewallAliases(string node, int vmid, CreateNodesSingleQemuSingleFirewallAliasesRequest createNodesSingleQemuSingleFirewallAliasesRequest = default(CreateNodesSingleQemuSingleFirewallAliasesRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleFirewallAliasesWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleFirewallAliasesRequest createNodesSingleQemuSingleFirewallAliasesRequest = default(CreateNodesSingleQemuSingleFirewallAliasesRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleMigrate
        /// </summary>
        /// <remarks>
        /// Migrate virtual machine. Creates a new migration task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleQemuSingleMigrate(string node, int vmid, CreateNodesSingleQemuSingleMigrateRequest createNodesSingleQemuSingleMigrateRequest = default(CreateNodesSingleQemuSingleMigrateRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleMigrate
        /// </summary>
        /// <remarks>
        /// Migrate virtual machine. Creates a new migration task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleMigrateWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleMigrateRequest createNodesSingleQemuSingleMigrateRequest = default(CreateNodesSingleQemuSingleMigrateRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleMonitor
        /// </summary>
        /// <remarks>
        /// Execute QEMU monitor commands.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMonitorRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleQemuSingleMonitor(string node, int vmid, CreateNodesSingleQemuSingleMonitorRequest createNodesSingleQemuSingleMonitorRequest = default(CreateNodesSingleQemuSingleMonitorRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleMonitor
        /// </summary>
        /// <remarks>
        /// Execute QEMU monitor commands.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMonitorRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleMonitorWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleMonitorRequest createNodesSingleQemuSingleMonitorRequest = default(CreateNodesSingleQemuSingleMonitorRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleMovedisk
        /// </summary>
        /// <remarks>
        /// Move volume to different storage or to a different VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMovediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleQemuSingleMovedisk(string node, int vmid, CreateNodesSingleQemuSingleMovediskRequest createNodesSingleQemuSingleMovediskRequest = default(CreateNodesSingleQemuSingleMovediskRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleMovedisk
        /// </summary>
        /// <remarks>
        /// Move volume to different storage or to a different VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMovediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleMovediskWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleMovediskRequest createNodesSingleQemuSingleMovediskRequest = default(CreateNodesSingleQemuSingleMovediskRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleMtunnel
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleQemuSingleMtunnel(string node, int vmid, CreateNodesSingleQemuSingleMtunnelRequest createNodesSingleQemuSingleMtunnelRequest = default(CreateNodesSingleQemuSingleMtunnelRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleMtunnel
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleMtunnelWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleMtunnelRequest createNodesSingleQemuSingleMtunnelRequest = default(CreateNodesSingleQemuSingleMtunnelRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleRemotemigrate
        /// </summary>
        /// <remarks>
        /// Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleQemuSingleRemotemigrate(string node, int vmid, CreateNodesSingleQemuSingleRemotemigrateRequest createNodesSingleQemuSingleRemotemigrateRequest = default(CreateNodesSingleQemuSingleRemotemigrateRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleRemotemigrate
        /// </summary>
        /// <remarks>
        /// Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleRemotemigrateWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleRemotemigrateRequest createNodesSingleQemuSingleRemotemigrateRequest = default(CreateNodesSingleQemuSingleRemotemigrateRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleSpiceproxy
        /// </summary>
        /// <remarks>
        /// Returns a SPICE configuration to connect to the VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        CreateNodesSingleQemuSingleSpiceproxy200Response CreateNodesSingleQemuSingleSpiceproxy(string node, int vmid, CreateNodesSingleQemuSingleSpiceproxyRequest createNodesSingleQemuSingleSpiceproxyRequest = default(CreateNodesSingleQemuSingleSpiceproxyRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleSpiceproxy
        /// </summary>
        /// <remarks>
        /// Returns a SPICE configuration to connect to the VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleQemuSingleSpiceproxyWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleSpiceproxyRequest createNodesSingleQemuSingleSpiceproxyRequest = default(CreateNodesSingleQemuSingleSpiceproxyRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleTemplate
        /// </summary>
        /// <remarks>
        /// Create a Template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTemplateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleQemuSingleTemplate(string node, int vmid, CreateNodesSingleQemuSingleTemplateRequest createNodesSingleQemuSingleTemplateRequest = default(CreateNodesSingleQemuSingleTemplateRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleTemplate
        /// </summary>
        /// <remarks>
        /// Create a Template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTemplateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleTemplateWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleTemplateRequest createNodesSingleQemuSingleTemplateRequest = default(CreateNodesSingleQemuSingleTemplateRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleQemuSingleTermproxy(string node, int vmid, CreateNodesSingleQemuSingleTermproxyRequest createNodesSingleQemuSingleTermproxyRequest = default(CreateNodesSingleQemuSingleTermproxyRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleTermproxyWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleTermproxyRequest createNodesSingleQemuSingleTermproxyRequest = default(CreateNodesSingleQemuSingleTermproxyRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleQemuSingleVncproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP VNC proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleQemuSingleVncproxy(string node, int vmid, CreateNodesSingleQemuSingleVncproxyRequest createNodesSingleQemuSingleVncproxyRequest = default(CreateNodesSingleQemuSingleVncproxyRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleQemuSingleVncproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP VNC proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleVncproxyWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleVncproxyRequest createNodesSingleQemuSingleVncproxyRequest = default(CreateNodesSingleQemuSingleVncproxyRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleReplicationSingleSchedulenow
        /// </summary>
        /// <remarks>
        /// Schedule replication job to start as soon as possible.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleReplicationSingleSchedulenow(string id, string node, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleReplicationSingleSchedulenow
        /// </summary>
        /// <remarks>
        /// Schedule replication job to start as soon as possible.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleReplicationSingleSchedulenowWithHttpInfo(string id, string node, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleServicesSingleReload
        /// </summary>
        /// <remarks>
        /// Reload service. Falls back to restart if service cannot be reloaded.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleServicesSingleReload(string node, string service, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleServicesSingleReload
        /// </summary>
        /// <remarks>
        /// Reload service. Falls back to restart if service cannot be reloaded.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleServicesSingleReloadWithHttpInfo(string node, string service, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleServicesSingleRestart
        /// </summary>
        /// <remarks>
        /// Hard restart service. Use reload if you want to reduce interruptions.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleServicesSingleRestart(string node, string service, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleServicesSingleRestart
        /// </summary>
        /// <remarks>
        /// Hard restart service. Use reload if you want to reduce interruptions.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleServicesSingleRestartWithHttpInfo(string node, string service, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleServicesSingleStart
        /// </summary>
        /// <remarks>
        /// Start service.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleServicesSingleStart(string node, string service, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleServicesSingleStart
        /// </summary>
        /// <remarks>
        /// Start service.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleServicesSingleStartWithHttpInfo(string node, string service, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleServicesSingleStop
        /// </summary>
        /// <remarks>
        /// Stop service.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleServicesSingleStop(string node, string service, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleServicesSingleStop
        /// </summary>
        /// <remarks>
        /// Stop service.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleServicesSingleStopWithHttpInfo(string node, string service, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleSpiceshell
        /// </summary>
        /// <remarks>
        /// Creates a SPICE shell.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSpiceshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        CreateNodesSingleQemuSingleSpiceproxy200Response CreateNodesSingleSpiceshell(string node, CreateNodesSingleSpiceshellRequest createNodesSingleSpiceshellRequest = default(CreateNodesSingleSpiceshellRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleSpiceshell
        /// </summary>
        /// <remarks>
        /// Creates a SPICE shell.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSpiceshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleSpiceshellWithHttpInfo(string node, CreateNodesSingleSpiceshellRequest createNodesSingleSpiceshellRequest = default(CreateNodesSingleSpiceshellRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleStartall
        /// </summary>
        /// <remarks>
        /// Start all VMs and containers located on this node (by default only those with onboot&#x3D;1).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStartallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleStartall(string node, CreateNodesSingleStartallRequest createNodesSingleStartallRequest = default(CreateNodesSingleStartallRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleStartall
        /// </summary>
        /// <remarks>
        /// Start all VMs and containers located on this node (by default only those with onboot&#x3D;1).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStartallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStartallWithHttpInfo(string node, CreateNodesSingleStartallRequest createNodesSingleStartallRequest = default(CreateNodesSingleStartallRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleStatus
        /// </summary>
        /// <remarks>
        /// Reboot or shutdown a node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStatusRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleStatus(string node, CreateNodesSingleStatusRequest createNodesSingleStatusRequest = default(CreateNodesSingleStatusRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleStatus
        /// </summary>
        /// <remarks>
        /// Reboot or shutdown a node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStatusRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStatusWithHttpInfo(string node, CreateNodesSingleStatusRequest createNodesSingleStatusRequest = default(CreateNodesSingleStatusRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleStopall
        /// </summary>
        /// <remarks>
        /// Stop all VMs and Containers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStopallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleStopall(string node, CreateNodesSingleStopallRequest createNodesSingleStopallRequest = default(CreateNodesSingleStopallRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleStopall
        /// </summary>
        /// <remarks>
        /// Stop all VMs and Containers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStopallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStopallWithHttpInfo(string node, CreateNodesSingleStopallRequest createNodesSingleStopallRequest = default(CreateNodesSingleStopallRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleStorageSingleContent
        /// </summary>
        /// <remarks>
        /// Allocate disk images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleContentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleStorageSingleContent200Response</returns>
        CreateNodesSingleStorageSingleContent200Response CreateNodesSingleStorageSingleContent(string node, string storage, CreateNodesSingleStorageSingleContentRequest createNodesSingleStorageSingleContentRequest = default(CreateNodesSingleStorageSingleContentRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleStorageSingleContent
        /// </summary>
        /// <remarks>
        /// Allocate disk images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleContentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleStorageSingleContent200Response</returns>
        ApiResponse<CreateNodesSingleStorageSingleContent200Response> CreateNodesSingleStorageSingleContentWithHttpInfo(string node, string storage, CreateNodesSingleStorageSingleContentRequest createNodesSingleStorageSingleContentRequest = default(CreateNodesSingleStorageSingleContentRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Copy a volume. This is experimental code - do not use.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="createNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleStorageSingleContentSingle(string node, string storage, string volume, CreateNodesSingleStorageSingleContentSingleRequest createNodesSingleStorageSingleContentSingleRequest = default(CreateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Copy a volume. This is experimental code - do not use.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="createNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStorageSingleContentSingleWithHttpInfo(string node, string storage, string volume, CreateNodesSingleStorageSingleContentSingleRequest createNodesSingleStorageSingleContentSingleRequest = default(CreateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleStorageSingleDownloadurl
        /// </summary>
        /// <remarks>
        /// Download templates, ISO images, OVAs and VM images by using an URL.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleDownloadurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleStorageSingleDownloadurl(string node, string storage, CreateNodesSingleStorageSingleDownloadurlRequest createNodesSingleStorageSingleDownloadurlRequest = default(CreateNodesSingleStorageSingleDownloadurlRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleStorageSingleDownloadurl
        /// </summary>
        /// <remarks>
        /// Download templates, ISO images, OVAs and VM images by using an URL.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleDownloadurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStorageSingleDownloadurlWithHttpInfo(string node, string storage, CreateNodesSingleStorageSingleDownloadurlRequest createNodesSingleStorageSingleDownloadurlRequest = default(CreateNodesSingleStorageSingleDownloadurlRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleStorageSingleOciregistrypull
        /// </summary>
        /// <remarks>
        /// Pull an OCI image from a registry.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleOciregistrypullRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleStorageSingleOciregistrypull(string node, string storage, CreateNodesSingleStorageSingleOciregistrypullRequest createNodesSingleStorageSingleOciregistrypullRequest = default(CreateNodesSingleStorageSingleOciregistrypullRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleStorageSingleOciregistrypull
        /// </summary>
        /// <remarks>
        /// Pull an OCI image from a registry.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleOciregistrypullRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStorageSingleOciregistrypullWithHttpInfo(string node, string storage, CreateNodesSingleStorageSingleOciregistrypullRequest createNodesSingleStorageSingleOciregistrypullRequest = default(CreateNodesSingleStorageSingleOciregistrypullRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleStorageSingleUpload
        /// </summary>
        /// <remarks>
        /// Upload templates, ISO images, OVAs and VM images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleUploadRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleStorageSingleUpload(string node, string storage, CreateNodesSingleStorageSingleUploadRequest createNodesSingleStorageSingleUploadRequest = default(CreateNodesSingleStorageSingleUploadRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleStorageSingleUpload
        /// </summary>
        /// <remarks>
        /// Upload templates, ISO images, OVAs and VM images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleUploadRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStorageSingleUploadWithHttpInfo(string node, string storage, CreateNodesSingleStorageSingleUploadRequest createNodesSingleStorageSingleUploadRequest = default(CreateNodesSingleStorageSingleUploadRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Update subscription info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleSubscription(string node, CreateNodesSingleSubscriptionRequest createNodesSingleSubscriptionRequest = default(CreateNodesSingleSubscriptionRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Update subscription info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleSubscriptionWithHttpInfo(string node, CreateNodesSingleSubscriptionRequest createNodesSingleSubscriptionRequest = default(CreateNodesSingleSubscriptionRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleSuspendall
        /// </summary>
        /// <remarks>
        /// Suspend all VMs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSuspendallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleSuspendall(string node, CreateNodesSingleSuspendallRequest createNodesSingleSuspendallRequest = default(CreateNodesSingleSuspendallRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleSuspendall
        /// </summary>
        /// <remarks>
        /// Suspend all VMs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSuspendallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleSuspendallWithHttpInfo(string node, CreateNodesSingleSuspendallRequest createNodesSingleSuspendallRequest = default(CreateNodesSingleSuspendallRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a VNC Shell proxy.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleTermproxy(string node, CreateNodesSingleTermproxyRequest createNodesSingleTermproxyRequest = default(CreateNodesSingleTermproxyRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a VNC Shell proxy.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleTermproxyWithHttpInfo(string node, CreateNodesSingleTermproxyRequest createNodesSingleTermproxyRequest = default(CreateNodesSingleTermproxyRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleVncshell
        /// </summary>
        /// <remarks>
        /// Creates a VNC Shell proxy.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVncshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleVncshell(string node, CreateNodesSingleVncshellRequest createNodesSingleVncshellRequest = default(CreateNodesSingleVncshellRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleVncshell
        /// </summary>
        /// <remarks>
        /// Creates a VNC Shell proxy.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVncshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleVncshellWithHttpInfo(string node, CreateNodesSingleVncshellRequest createNodesSingleVncshellRequest = default(CreateNodesSingleVncshellRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleVzdump
        /// </summary>
        /// <remarks>
        /// Create backup.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVzdumpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateNodesSingleVzdump(string node, CreateNodesSingleVzdumpRequest createNodesSingleVzdumpRequest = default(CreateNodesSingleVzdumpRequest), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleVzdump
        /// </summary>
        /// <remarks>
        /// Create backup.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVzdumpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateNodesSingleVzdumpWithHttpInfo(string node, CreateNodesSingleVzdumpRequest createNodesSingleVzdumpRequest = default(CreateNodesSingleVzdumpRequest), int operationIndex = 0);
        /// <summary>
        /// createNodesSingleWakeonlan
        /// </summary>
        /// <remarks>
        /// Try to wake a node via &#39;wake on LAN&#39; network packet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleWakeonlan200Response</returns>
        CreateNodesSingleWakeonlan200Response CreateNodesSingleWakeonlan(string node, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// createNodesSingleWakeonlan
        /// </summary>
        /// <remarks>
        /// Try to wake a node via &#39;wake on LAN&#39; network packet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleWakeonlan200Response</returns>
        ApiResponse<CreateNodesSingleWakeonlan200Response> CreateNodesSingleWakeonlanWithHttpInfo(string node, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// createPool
        /// </summary>
        /// <remarks>
        /// Create new pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreatePool(CreatePoolRequest createPoolRequest = default(CreatePoolRequest), int operationIndex = 0);

        /// <summary>
        /// createPool
        /// </summary>
        /// <remarks>
        /// Create new pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreatePoolWithHttpInfo(CreatePoolRequest createPoolRequest = default(CreatePoolRequest), int operationIndex = 0);
        /// <summary>
        /// createStorage
        /// </summary>
        /// <remarks>
        /// Create a new storage.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createStorageRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateStorage200Response</returns>
        CreateStorage200Response CreateStorage(CreateStorageRequest createStorageRequest = default(CreateStorageRequest), int operationIndex = 0);

        /// <summary>
        /// createStorage
        /// </summary>
        /// <remarks>
        /// Create a new storage.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createStorageRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateStorage200Response</returns>
        ApiResponse<CreateStorage200Response> CreateStorageWithHttpInfo(CreateStorageRequest createStorageRequest = default(CreateStorageRequest), int operationIndex = 0);
        /// <summary>
        /// createVM
        /// </summary>
        /// <remarks>
        /// Create or restore a virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateVM(string node, CreateVMRequest createVMRequest = default(CreateVMRequest), int operationIndex = 0);

        /// <summary>
        /// createVM
        /// </summary>
        /// <remarks>
        /// Create or restore a virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateVMWithHttpInfo(string node, CreateVMRequest createVMRequest = default(CreateVMRequest), int operationIndex = 0);
        /// <summary>
        /// createVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateVMFirewallIPSet(string node, int vmid, CreateVMFirewallIPSetRequest createVMFirewallIPSetRequest = default(CreateVMFirewallIPSetRequest), int operationIndex = 0);

        /// <summary>
        /// createVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateVMFirewallIPSetWithHttpInfo(string node, int vmid, CreateVMFirewallIPSetRequest createVMFirewallIPSetRequest = default(CreateVMFirewallIPSetRequest), int operationIndex = 0);
        /// <summary>
        /// createVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response CreateVMFirewallRule(string node, int vmid, CreateVMFirewallRuleRequest createVMFirewallRuleRequest = default(CreateVMFirewallRuleRequest), int operationIndex = 0);

        /// <summary>
        /// createVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> CreateVMFirewallRuleWithHttpInfo(string node, int vmid, CreateVMFirewallRuleRequest createVMFirewallRuleRequest = default(CreateVMFirewallRuleRequest), int operationIndex = 0);
        /// <summary>
        /// createVMSnapshot
        /// </summary>
        /// <remarks>
        /// Snapshot a VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response CreateVMSnapshot(string node, int vmid, CreateVMSnapshotRequest createVMSnapshotRequest = default(CreateVMSnapshotRequest), int operationIndex = 0);

        /// <summary>
        /// createVMSnapshot
        /// </summary>
        /// <remarks>
        /// Snapshot a VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateVMSnapshotWithHttpInfo(string node, int vmid, CreateVMSnapshotRequest createVMSnapshotRequest = default(CreateVMSnapshotRequest), int operationIndex = 0);
        /// <summary>
        /// deleteAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Delete an authentication server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteAccessDomainsSingle(string realm, int operationIndex = 0);

        /// <summary>
        /// deleteAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Delete an authentication server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteAccessDomainsSingleWithHttpInfo(string realm, int operationIndex = 0);
        /// <summary>
        /// deleteAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Delete group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteAccessGroupsSingle(string groupid, int operationIndex = 0);

        /// <summary>
        /// deleteAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Delete group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteAccessGroupsSingleWithHttpInfo(string groupid, int operationIndex = 0);
        /// <summary>
        /// deleteAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Delete role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteAccessRolesSingle(string roleid, int operationIndex = 0);

        /// <summary>
        /// deleteAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Delete role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteAccessRolesSingleWithHttpInfo(string roleid, int operationIndex = 0);
        /// <summary>
        /// deleteAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Delete a TFA entry by ID.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteAccessTfaSingleSingle(string id, string userid, int operationIndex = 0);

        /// <summary>
        /// deleteAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Delete a TFA entry by ID.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteAccessTfaSingleSingleWithHttpInfo(string id, string userid, int operationIndex = 0);
        /// <summary>
        /// deleteAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Delete user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteAccessUsersSingle(string userid, int operationIndex = 0);

        /// <summary>
        /// deleteAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Delete user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteAccessUsersSingleWithHttpInfo(string userid, int operationIndex = 0);
        /// <summary>
        /// deleteAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Remove API token for a specific user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteAccessUsersSingleTokenSingle(string tokenid, string userid, int operationIndex = 0);

        /// <summary>
        /// deleteAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Remove API token for a specific user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteAccessUsersSingleTokenSingleWithHttpInfo(string tokenid, string userid, int operationIndex = 0);
        /// <summary>
        /// deleteClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Deactivate existing ACME account at CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterAcmeAccountSingle(string name, int operationIndex = 0);

        /// <summary>
        /// deleteClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Deactivate existing ACME account at CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterAcmeAccountSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// deleteClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Delete ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterAcmePluginsSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Delete ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterAcmePluginsSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Delete vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterBackupSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Delete vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterBackupSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterConfigNodesSingle
        /// </summary>
        /// <remarks>
        /// Removes a node from the cluster configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterConfigNodesSingle(string node, int operationIndex = 0);

        /// <summary>
        /// deleteClusterConfigNodesSingle
        /// </summary>
        /// <remarks>
        /// Removes a node from the cluster configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterConfigNodesSingleWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// deleteClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterFirewallAliasesSingle(string name, int operationIndex = 0);

        /// <summary>
        /// deleteClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterFirewallAliasesSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// deleteClusterFirewallGroup
        /// </summary>
        /// <remarks>
        /// Delete security group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterFirewallGroup(string group, int operationIndex = 0);

        /// <summary>
        /// deleteClusterFirewallGroup
        /// </summary>
        /// <remarks>
        /// Delete security group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterFirewallGroupWithHttpInfo(string group, int operationIndex = 0);
        /// <summary>
        /// deleteClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterFirewallIPSet(string name, int operationIndex = 0);

        /// <summary>
        /// deleteClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterFirewallIPSetWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// deleteClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Delete ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterHaGroupsSingle(string group, int operationIndex = 0);

        /// <summary>
        /// deleteClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Delete ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterHaGroupsSingleWithHttpInfo(string group, int operationIndex = 0);
        /// <summary>
        /// deleteClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Delete resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterHaResourcesSingle(string sid, int operationIndex = 0);

        /// <summary>
        /// deleteClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Delete resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterHaResourcesSingleWithHttpInfo(string sid, int operationIndex = 0);
        /// <summary>
        /// deleteClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterHaRulesSingle(string rule, int operationIndex = 0);

        /// <summary>
        /// deleteClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterHaRulesSingleWithHttpInfo(string rule, int operationIndex = 0);
        /// <summary>
        /// deleteClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Delete realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterJobsRealmsyncSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Delete realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterJobsRealmsyncSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Remove directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterMappingDirSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Remove directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterMappingDirSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Remove Hardware Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterMappingPciSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Remove Hardware Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterMappingPciSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Remove Hardware Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterMappingUsbSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Remove Hardware Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterMappingUsbSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Remove Metric server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterMetricsServerSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Remove Metric server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterMetricsServerSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Remove gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterNotificationsEndpointsGotifySingle(string name, int operationIndex = 0);

        /// <summary>
        /// deleteClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Remove gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsGotifySingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// deleteClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Remove sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterNotificationsEndpointsSendmailSingle(string name, int operationIndex = 0);

        /// <summary>
        /// deleteClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Remove sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsSendmailSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// deleteClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Remove smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterNotificationsEndpointsSmtpSingle(string name, int operationIndex = 0);

        /// <summary>
        /// deleteClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Remove smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsSmtpSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// deleteClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Remove webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterNotificationsEndpointsWebhookSingle(string name, int operationIndex = 0);

        /// <summary>
        /// deleteClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Remove webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsWebhookSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// deleteClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Remove matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterNotificationsMatchersSingle(string name, int operationIndex = 0);

        /// <summary>
        /// deleteClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Remove matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsMatchersSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// deleteClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Mark replication job for removal.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterReplicationSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Mark replication job for removal.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterReplicationSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSDNController
        /// </summary>
        /// <remarks>
        /// Delete sdn controller object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSDNController(string controller, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSDNController
        /// </summary>
        /// <remarks>
        /// Delete sdn controller object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSDNControllerWithHttpInfo(string controller, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Delete sdn vnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSDNVnet(string vnet, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Delete sdn vnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSDNVnetWithHttpInfo(string vnet, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Delete sdn zone object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSDNZone(string zone, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Delete sdn zone object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSDNZoneWithHttpInfo(string zone, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn dns object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSdnDnsSingle(string dns, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn dns object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnDnsSingleWithHttpInfo(string dns, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Add a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSdnFabricsFabricSingle(string id, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Add a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnFabricsFabricSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Add a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSdnFabricsNodeSingleSingle(string fabricId, string nodeId, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Add a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnFabricsNodeSingleSingleWithHttpInfo(string fabricId, string nodeId, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn ipam object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSdnIpamsSingle(string ipam, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn ipam object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnIpamsSingleWithHttpInfo(string ipam, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSdnLock
        /// </summary>
        /// <remarks>
        /// Release global lock for SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSdnLock(int operationIndex = 0);

        /// <summary>
        /// deleteClusterSdnLock
        /// </summary>
        /// <remarks>
        /// Release global lock for SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnLockWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// deleteClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSdnVnetsSingleFirewallRulesSingle(int pos, string vnet, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(int pos, string vnet, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Delete IP Mappings in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSdnVnetsSingleIps(string vnet, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Delete IP Mappings in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleIpsWithHttpInfo(string vnet, int operationIndex = 0);
        /// <summary>
        /// deleteClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn subnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteClusterSdnVnetsSingleSubnetsSingle(string subnet, string vnet, int operationIndex = 0);

        /// <summary>
        /// deleteClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn subnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(string subnet, string vnet, int operationIndex = 0);
        /// <summary>
        /// deleteNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodeFirewallRule(string node, int pos, int operationIndex = 0);

        /// <summary>
        /// deleteNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodeFirewallRuleWithHttpInfo(string node, int pos, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleCephMdsSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Metadata Server
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleCephMdsSingle(string name, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleCephMdsSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Metadata Server
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephMdsSingleWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleCephMgrSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Manager.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleCephMgrSingle(string id, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleCephMgrSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Manager.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephMgrSingleWithHttpInfo(string id, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleCephMonSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Monitor and Manager.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleCephMonSingle(string monid, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleCephMonSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Monitor and Manager.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephMonSingleWithHttpInfo(string monid, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleCephOsdSingle
        /// </summary>
        /// <remarks>
        /// Destroy OSD
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleCephOsdSingle(string node, int osdid, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleCephOsdSingle
        /// </summary>
        /// <remarks>
        /// Destroy OSD
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephOsdSingleWithHttpInfo(string node, int osdid, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Destroy pool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleCephPoolSingle(string name, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Destroy pool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephPoolSingleWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Revoke existing certificate from CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleCertificatesAcmeCertificate(string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Revoke existing certificate from CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCertificatesAcmeCertificateWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleCertificatesCustom
        /// </summary>
        /// <remarks>
        /// DELETE custom certificate chain and key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleCertificatesCustom(string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleCertificatesCustom
        /// </summary>
        /// <remarks>
        /// DELETE custom certificate chain and key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCertificatesCustomWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleDisksDirectorySingle
        /// </summary>
        /// <remarks>
        /// Unmounts the storage and removes the mount unit.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleDisksDirectorySingle(string name, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleDisksDirectorySingle
        /// </summary>
        /// <remarks>
        /// Unmounts the storage and removes the mount unit.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleDisksDirectorySingleWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleDisksLvmSingle
        /// </summary>
        /// <remarks>
        /// Remove an LVM Volume Group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleDisksLvmSingle(string name, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleDisksLvmSingle
        /// </summary>
        /// <remarks>
        /// Remove an LVM Volume Group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleDisksLvmSingleWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleDisksLvmthinSingle
        /// </summary>
        /// <remarks>
        /// Remove an LVM thin pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleDisksLvmthinSingle(string name, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleDisksLvmthinSingle
        /// </summary>
        /// <remarks>
        /// Remove an LVM thin pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleDisksLvmthinSingleWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleDisksZfsSingle
        /// </summary>
        /// <remarks>
        /// Destroy a ZFS pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleDisksZfsSingle(string name, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleDisksZfsSingle
        /// </summary>
        /// <remarks>
        /// Destroy a ZFS pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleDisksZfsSingleWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleLxcSingle
        /// </summary>
        /// <remarks>
        /// Destroy the container (also delete all uses files).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleLxcSingle(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleLxcSingle
        /// </summary>
        /// <remarks>
        /// Destroy the container (also delete all uses files).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleLxcSingleFirewallAliasesSingle(string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleLxcSingleFirewallIpsetSingle(string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle(string cidr, string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(string cidr, string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleLxcSingleFirewallRulesSingle(string node, int pos, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(string node, int pos, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <remarks>
        /// Delete a LXC snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response DeleteNodesSingleLxcSingleSnapshotSingle(string node, string snapname, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <remarks>
        /// Delete a LXC snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> DeleteNodesSingleLxcSingleSnapshotSingleWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Revert network configuration changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleNetwork(string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Revert network configuration changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleNetworkWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Delete network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleNetworkSingle(string iface, string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Delete network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleNetworkSingleWithHttpInfo(string iface, string node, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleQemuSingleFirewallAliasesSingle(string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Delete volume
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleStorageSingleContentSingle(string node, string storage, string volume, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Delete volume
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleStorageSingleContentSingleWithHttpInfo(string node, string storage, string volume, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleStorageSinglePrunebackups
        /// </summary>
        /// <remarks>
        /// Prune backups. Only those using the standard naming scheme are considered.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleStorageSinglePrunebackups(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleStorageSinglePrunebackups
        /// </summary>
        /// <remarks>
        /// Prune backups. Only those using the standard naming scheme are considered.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleStorageSinglePrunebackupsWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// deleteNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Delete subscription key of this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteNodesSingleSubscription(string node, int operationIndex = 0);

        /// <summary>
        /// deleteNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Delete subscription key of this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleSubscriptionWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// deletePool
        /// </summary>
        /// <remarks>
        /// Delete pool (deprecated, no support for nested pools, use &#39;DELETE /pools/?poolid&#x3D;{poolid}&#39;).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeletePool(string poolid, int operationIndex = 0);

        /// <summary>
        /// deletePool
        /// </summary>
        /// <remarks>
        /// Delete pool (deprecated, no support for nested pools, use &#39;DELETE /pools/?poolid&#x3D;{poolid}&#39;).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeletePoolWithHttpInfo(string poolid, int operationIndex = 0);
        /// <summary>
        /// deletePools
        /// </summary>
        /// <remarks>
        /// Delete pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeletePools(int operationIndex = 0);

        /// <summary>
        /// deletePools
        /// </summary>
        /// <remarks>
        /// Delete pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeletePoolsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// deleteStorageSingle
        /// </summary>
        /// <remarks>
        /// Delete storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteStorageSingle(string storage, int operationIndex = 0);

        /// <summary>
        /// deleteStorageSingle
        /// </summary>
        /// <remarks>
        /// Delete storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteStorageSingleWithHttpInfo(string storage, int operationIndex = 0);
        /// <summary>
        /// deleteVM
        /// </summary>
        /// <remarks>
        /// Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteVM(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteVM
        /// </summary>
        /// <remarks>
        /// Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteVMWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteVMFirewallIPSet(string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteVMFirewallIPSetWithHttpInfo(string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response DeleteVMFirewallRule(string node, int pos, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> DeleteVMFirewallRuleWithHttpInfo(string node, int pos, int vmid, int operationIndex = 0);
        /// <summary>
        /// deleteVMSnapshot
        /// </summary>
        /// <remarks>
        /// Delete a VM snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response DeleteVMSnapshot(string node, string snapname, int vmid, int operationIndex = 0);

        /// <summary>
        /// deleteVMSnapshot
        /// </summary>
        /// <remarks>
        /// Delete a VM snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> DeleteVMSnapshotWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0);
        /// <summary>
        /// getAccess
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetAccess(int operationIndex = 0);

        /// <summary>
        /// getAccess
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetAccessWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessAcl
        /// </summary>
        /// <remarks>
        /// Get Access Control List (ACLs).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessAcl200Response</returns>
        GetAccessAcl200Response GetAccessAcl(int operationIndex = 0);

        /// <summary>
        /// getAccessAcl
        /// </summary>
        /// <remarks>
        /// Get Access Control List (ACLs).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessAcl200Response</returns>
        ApiResponse<GetAccessAcl200Response> GetAccessAclWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessDomains
        /// </summary>
        /// <remarks>
        /// Authentication domain index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessDomains200Response</returns>
        GetAccessDomains200Response GetAccessDomains(int operationIndex = 0);

        /// <summary>
        /// getAccessDomains
        /// </summary>
        /// <remarks>
        /// Authentication domain index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessDomains200Response</returns>
        ApiResponse<GetAccessDomains200Response> GetAccessDomainsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Get auth server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetAccessDomainsSingle(string realm, int operationIndex = 0);

        /// <summary>
        /// getAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Get auth server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetAccessDomainsSingleWithHttpInfo(string realm, int operationIndex = 0);
        /// <summary>
        /// getAccessGroups
        /// </summary>
        /// <remarks>
        /// Group index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessGroups200Response</returns>
        GetAccessGroups200Response GetAccessGroups(int operationIndex = 0);

        /// <summary>
        /// getAccessGroups
        /// </summary>
        /// <remarks>
        /// Group index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessGroups200Response</returns>
        ApiResponse<GetAccessGroups200Response> GetAccessGroupsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Get group configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessGroupsSingle200Response</returns>
        GetAccessGroupsSingle200Response GetAccessGroupsSingle(string groupid, int operationIndex = 0);

        /// <summary>
        /// getAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Get group configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessGroupsSingle200Response</returns>
        ApiResponse<GetAccessGroupsSingle200Response> GetAccessGroupsSingleWithHttpInfo(string groupid, int operationIndex = 0);
        /// <summary>
        /// getAccessOpenid
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetAccessOpenid(int operationIndex = 0);

        /// <summary>
        /// getAccessOpenid
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetAccessOpenidWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessPermissions
        /// </summary>
        /// <remarks>
        /// Retrieve effective permissions of given user/token.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessPermissions200Response</returns>
        GetAccessPermissions200Response GetAccessPermissions(int operationIndex = 0);

        /// <summary>
        /// getAccessPermissions
        /// </summary>
        /// <remarks>
        /// Retrieve effective permissions of given user/token.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessPermissions200Response</returns>
        ApiResponse<GetAccessPermissions200Response> GetAccessPermissionsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessRoles
        /// </summary>
        /// <remarks>
        /// Role index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessRoles200Response</returns>
        GetAccessRoles200Response GetAccessRoles(int operationIndex = 0);

        /// <summary>
        /// getAccessRoles
        /// </summary>
        /// <remarks>
        /// Role index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessRoles200Response</returns>
        ApiResponse<GetAccessRoles200Response> GetAccessRolesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Get role configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessRolesSingle200Response</returns>
        GetAccessRolesSingle200Response GetAccessRolesSingle(string roleid, int operationIndex = 0);

        /// <summary>
        /// getAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Get role configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessRolesSingle200Response</returns>
        ApiResponse<GetAccessRolesSingle200Response> GetAccessRolesSingleWithHttpInfo(string roleid, int operationIndex = 0);
        /// <summary>
        /// getAccessTfa
        /// </summary>
        /// <remarks>
        /// List TFA configurations of users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessTfa200Response</returns>
        GetAccessTfa200Response GetAccessTfa(int operationIndex = 0);

        /// <summary>
        /// getAccessTfa
        /// </summary>
        /// <remarks>
        /// List TFA configurations of users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessTfa200Response</returns>
        ApiResponse<GetAccessTfa200Response> GetAccessTfaWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessTfaSingle
        /// </summary>
        /// <remarks>
        /// List TFA configurations of users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessTfaSingle200Response</returns>
        GetAccessTfaSingle200Response GetAccessTfaSingle(string userid, int operationIndex = 0);

        /// <summary>
        /// getAccessTfaSingle
        /// </summary>
        /// <remarks>
        /// List TFA configurations of users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessTfaSingle200Response</returns>
        ApiResponse<GetAccessTfaSingle200Response> GetAccessTfaSingleWithHttpInfo(string userid, int operationIndex = 0);
        /// <summary>
        /// getAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Fetch a requested TFA entry if present.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessTfaSingleSingle200Response</returns>
        GetAccessTfaSingleSingle200Response GetAccessTfaSingleSingle(string id, string userid, int operationIndex = 0);

        /// <summary>
        /// getAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Fetch a requested TFA entry if present.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessTfaSingleSingle200Response</returns>
        ApiResponse<GetAccessTfaSingleSingle200Response> GetAccessTfaSingleSingleWithHttpInfo(string id, string userid, int operationIndex = 0);
        /// <summary>
        /// getAccessTicket
        /// </summary>
        /// <remarks>
        /// Dummy. Useful for formatters which want to provide a login page.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetAccessTicket(int operationIndex = 0);

        /// <summary>
        /// getAccessTicket
        /// </summary>
        /// <remarks>
        /// Dummy. Useful for formatters which want to provide a login page.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetAccessTicketWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessUsers
        /// </summary>
        /// <remarks>
        /// User index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsers200Response</returns>
        GetAccessUsers200Response GetAccessUsers(int operationIndex = 0);

        /// <summary>
        /// getAccessUsers
        /// </summary>
        /// <remarks>
        /// User index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsers200Response</returns>
        ApiResponse<GetAccessUsers200Response> GetAccessUsersWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Get user configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsersSingle200Response</returns>
        GetAccessUsersSingle200Response GetAccessUsersSingle(string userid, int operationIndex = 0);

        /// <summary>
        /// getAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Get user configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsersSingle200Response</returns>
        ApiResponse<GetAccessUsersSingle200Response> GetAccessUsersSingleWithHttpInfo(string userid, int operationIndex = 0);
        /// <summary>
        /// getAccessUsersSingleTfa
        /// </summary>
        /// <remarks>
        /// Get user TFA types (Personal and Realm).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsersSingleTfa200Response</returns>
        GetAccessUsersSingleTfa200Response GetAccessUsersSingleTfa(string userid, int operationIndex = 0);

        /// <summary>
        /// getAccessUsersSingleTfa
        /// </summary>
        /// <remarks>
        /// Get user TFA types (Personal and Realm).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsersSingleTfa200Response</returns>
        ApiResponse<GetAccessUsersSingleTfa200Response> GetAccessUsersSingleTfaWithHttpInfo(string userid, int operationIndex = 0);
        /// <summary>
        /// getAccessUsersSingleToken
        /// </summary>
        /// <remarks>
        /// Get user API tokens.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsersSingleToken200Response</returns>
        GetAccessUsersSingleToken200Response GetAccessUsersSingleToken(string userid, int operationIndex = 0);

        /// <summary>
        /// getAccessUsersSingleToken
        /// </summary>
        /// <remarks>
        /// Get user API tokens.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsersSingleToken200Response</returns>
        ApiResponse<GetAccessUsersSingleToken200Response> GetAccessUsersSingleTokenWithHttpInfo(string userid, int operationIndex = 0);
        /// <summary>
        /// getAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Get specific API token information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsersSingleTokenSingle200Response</returns>
        GetAccessUsersSingleTokenSingle200Response GetAccessUsersSingleTokenSingle(string tokenid, string userid, int operationIndex = 0);

        /// <summary>
        /// getAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Get specific API token information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsersSingleTokenSingle200Response</returns>
        ApiResponse<GetAccessUsersSingleTokenSingle200Response> GetAccessUsersSingleTokenSingleWithHttpInfo(string tokenid, string userid, int operationIndex = 0);
        /// <summary>
        /// getCluster
        /// </summary>
        /// <remarks>
        /// Cluster index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetCluster(int operationIndex = 0);

        /// <summary>
        /// getCluster
        /// </summary>
        /// <remarks>
        /// Cluster index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterAcme
        /// </summary>
        /// <remarks>
        /// ACMEAccount index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterAcme(int operationIndex = 0);

        /// <summary>
        /// getClusterAcme
        /// </summary>
        /// <remarks>
        /// ACMEAccount index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterAcmeWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterAcmeAccount
        /// </summary>
        /// <remarks>
        /// ACMEAccount index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterAcmeAccount(int operationIndex = 0);

        /// <summary>
        /// getClusterAcmeAccount
        /// </summary>
        /// <remarks>
        /// ACMEAccount index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterAcmeAccountWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Return existing ACME account information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeAccountSingle200Response</returns>
        GetClusterAcmeAccountSingle200Response GetClusterAcmeAccountSingle(string name, int operationIndex = 0);

        /// <summary>
        /// getClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Return existing ACME account information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeAccountSingle200Response</returns>
        ApiResponse<GetClusterAcmeAccountSingle200Response> GetClusterAcmeAccountSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// getClusterAcmeChallengeschema
        /// </summary>
        /// <remarks>
        /// Get schema of ACME challenge types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeChallengeschema200Response</returns>
        GetClusterAcmeChallengeschema200Response GetClusterAcmeChallengeschema(int operationIndex = 0);

        /// <summary>
        /// getClusterAcmeChallengeschema
        /// </summary>
        /// <remarks>
        /// Get schema of ACME challenge types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeChallengeschema200Response</returns>
        ApiResponse<GetClusterAcmeChallengeschema200Response> GetClusterAcmeChallengeschemaWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterAcmeDirectories
        /// </summary>
        /// <remarks>
        /// Get named known ACME directory endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeDirectories200Response</returns>
        GetClusterAcmeDirectories200Response GetClusterAcmeDirectories(int operationIndex = 0);

        /// <summary>
        /// getClusterAcmeDirectories
        /// </summary>
        /// <remarks>
        /// Get named known ACME directory endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeDirectories200Response</returns>
        ApiResponse<GetClusterAcmeDirectories200Response> GetClusterAcmeDirectoriesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterAcmeMeta
        /// </summary>
        /// <remarks>
        /// Retrieve ACME Directory Meta Information
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeMeta200Response</returns>
        GetClusterAcmeMeta200Response GetClusterAcmeMeta(int operationIndex = 0);

        /// <summary>
        /// getClusterAcmeMeta
        /// </summary>
        /// <remarks>
        /// Retrieve ACME Directory Meta Information
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeMeta200Response</returns>
        ApiResponse<GetClusterAcmeMeta200Response> GetClusterAcmeMetaWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterAcmePlugins
        /// </summary>
        /// <remarks>
        /// ACME plugin index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmePlugins200Response</returns>
        GetClusterAcmePlugins200Response GetClusterAcmePlugins(int operationIndex = 0);

        /// <summary>
        /// getClusterAcmePlugins
        /// </summary>
        /// <remarks>
        /// ACME plugin index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmePlugins200Response</returns>
        ApiResponse<GetClusterAcmePlugins200Response> GetClusterAcmePluginsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Get ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmePluginsSingle200Response</returns>
        GetClusterAcmePluginsSingle200Response GetClusterAcmePluginsSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Get ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmePluginsSingle200Response</returns>
        ApiResponse<GetClusterAcmePluginsSingle200Response> GetClusterAcmePluginsSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterAcmeTos
        /// </summary>
        /// <remarks>
        /// Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeTos200Response</returns>
        GetClusterAcmeTos200Response GetClusterAcmeTos(int operationIndex = 0);

        /// <summary>
        /// getClusterAcmeTos
        /// </summary>
        /// <remarks>
        /// Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeTos200Response</returns>
        ApiResponse<GetClusterAcmeTos200Response> GetClusterAcmeTosWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterBackup
        /// </summary>
        /// <remarks>
        /// List vzdump backup schedule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackup200Response</returns>
        GetClusterBackup200Response GetClusterBackup(int operationIndex = 0);

        /// <summary>
        /// getClusterBackup
        /// </summary>
        /// <remarks>
        /// List vzdump backup schedule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackup200Response</returns>
        ApiResponse<GetClusterBackup200Response> GetClusterBackupWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Read vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterBackupSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Read vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterBackupSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterBackupSingleIncludedvolumes
        /// </summary>
        /// <remarks>
        /// Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackupSingleIncludedvolumes200Response</returns>
        GetClusterBackupSingleIncludedvolumes200Response GetClusterBackupSingleIncludedvolumes(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterBackupSingleIncludedvolumes
        /// </summary>
        /// <remarks>
        /// Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackupSingleIncludedvolumes200Response</returns>
        ApiResponse<GetClusterBackupSingleIncludedvolumes200Response> GetClusterBackupSingleIncludedvolumesWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterBackupinfo
        /// </summary>
        /// <remarks>
        /// Index for backup info related endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackupinfo200Response</returns>
        GetClusterBackupinfo200Response GetClusterBackupinfo(int operationIndex = 0);

        /// <summary>
        /// getClusterBackupinfo
        /// </summary>
        /// <remarks>
        /// Index for backup info related endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackupinfo200Response</returns>
        ApiResponse<GetClusterBackupinfo200Response> GetClusterBackupinfoWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterBackupinfoNotbackedup
        /// </summary>
        /// <remarks>
        /// Shows all guests which are not covered by any backup job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackupinfoNotbackedup200Response</returns>
        GetClusterBackupinfoNotbackedup200Response GetClusterBackupinfoNotbackedup(int operationIndex = 0);

        /// <summary>
        /// getClusterBackupinfoNotbackedup
        /// </summary>
        /// <remarks>
        /// Shows all guests which are not covered by any backup job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackupinfoNotbackedup200Response</returns>
        ApiResponse<GetClusterBackupinfoNotbackedup200Response> GetClusterBackupinfoNotbackedupWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterBulkaction
        /// </summary>
        /// <remarks>
        /// List resource types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMapping200Response</returns>
        GetClusterMapping200Response GetClusterBulkaction(int operationIndex = 0);

        /// <summary>
        /// getClusterBulkaction
        /// </summary>
        /// <remarks>
        /// List resource types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMapping200Response</returns>
        ApiResponse<GetClusterMapping200Response> GetClusterBulkactionWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterBulkactionGuest
        /// </summary>
        /// <remarks>
        /// Bulk action index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterBulkactionGuest(int operationIndex = 0);

        /// <summary>
        /// getClusterBulkactionGuest
        /// </summary>
        /// <remarks>
        /// Bulk action index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterBulkactionGuestWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterCeph
        /// </summary>
        /// <remarks>
        /// Cluster ceph index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterCeph(int operationIndex = 0);

        /// <summary>
        /// getClusterCeph
        /// </summary>
        /// <remarks>
        /// Cluster ceph index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterCephWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterCephFlags
        /// </summary>
        /// <remarks>
        /// get the status of all ceph flags
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterCephFlags200Response</returns>
        GetClusterCephFlags200Response GetClusterCephFlags(int operationIndex = 0);

        /// <summary>
        /// getClusterCephFlags
        /// </summary>
        /// <remarks>
        /// get the status of all ceph flags
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterCephFlags200Response</returns>
        ApiResponse<GetClusterCephFlags200Response> GetClusterCephFlagsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterCephFlagsSingle
        /// </summary>
        /// <remarks>
        /// Get the status of a specific ceph flag.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterCephFlagsSingle200Response</returns>
        GetClusterCephFlagsSingle200Response GetClusterCephFlagsSingle(string flag, int operationIndex = 0);

        /// <summary>
        /// getClusterCephFlagsSingle
        /// </summary>
        /// <remarks>
        /// Get the status of a specific ceph flag.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterCephFlagsSingle200Response</returns>
        ApiResponse<GetClusterCephFlagsSingle200Response> GetClusterCephFlagsSingleWithHttpInfo(string flag, int operationIndex = 0);
        /// <summary>
        /// getClusterCephMetadata
        /// </summary>
        /// <remarks>
        /// Get ceph metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterCephMetadata200Response</returns>
        GetClusterCephMetadata200Response GetClusterCephMetadata(int operationIndex = 0);

        /// <summary>
        /// getClusterCephMetadata
        /// </summary>
        /// <remarks>
        /// Get ceph metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterCephMetadata200Response</returns>
        ApiResponse<GetClusterCephMetadata200Response> GetClusterCephMetadataWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterCephStatus
        /// </summary>
        /// <remarks>
        /// Get ceph status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterCephStatus(int operationIndex = 0);

        /// <summary>
        /// getClusterCephStatus
        /// </summary>
        /// <remarks>
        /// Get ceph status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterCephStatusWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterConfig
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterConfig(int operationIndex = 0);

        /// <summary>
        /// getClusterConfig
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterConfigWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterConfigApiversion
        /// </summary>
        /// <remarks>
        /// Return the version of the cluster join API available on this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterConfigApiversion200Response</returns>
        GetClusterConfigApiversion200Response GetClusterConfigApiversion(int operationIndex = 0);

        /// <summary>
        /// getClusterConfigApiversion
        /// </summary>
        /// <remarks>
        /// Return the version of the cluster join API available on this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterConfigApiversion200Response</returns>
        ApiResponse<GetClusterConfigApiversion200Response> GetClusterConfigApiversionWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterConfigJoin
        /// </summary>
        /// <remarks>
        /// Get information needed to join this cluster over the connected node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterConfigJoin200Response</returns>
        GetClusterConfigJoin200Response GetClusterConfigJoin(int operationIndex = 0);

        /// <summary>
        /// getClusterConfigJoin
        /// </summary>
        /// <remarks>
        /// Get information needed to join this cluster over the connected node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterConfigJoin200Response</returns>
        ApiResponse<GetClusterConfigJoin200Response> GetClusterConfigJoinWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterConfigNodes
        /// </summary>
        /// <remarks>
        /// Corosync node list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterConfigNodes200Response</returns>
        GetClusterConfigNodes200Response GetClusterConfigNodes(int operationIndex = 0);

        /// <summary>
        /// getClusterConfigNodes
        /// </summary>
        /// <remarks>
        /// Corosync node list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterConfigNodes200Response</returns>
        ApiResponse<GetClusterConfigNodes200Response> GetClusterConfigNodesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterConfigQdevice
        /// </summary>
        /// <remarks>
        /// Get QDevice status
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterConfigQdevice(int operationIndex = 0);

        /// <summary>
        /// getClusterConfigQdevice
        /// </summary>
        /// <remarks>
        /// Get QDevice status
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterConfigQdeviceWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterConfigTotem
        /// </summary>
        /// <remarks>
        /// Get corosync totem protocol settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterConfigTotem(int operationIndex = 0);

        /// <summary>
        /// getClusterConfigTotem
        /// </summary>
        /// <remarks>
        /// Get corosync totem protocol settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterConfigTotemWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterFirewall(int operationIndex = 0);

        /// <summary>
        /// getClusterFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterFirewallWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallAliases200Response</returns>
        GetClusterFirewallAliases200Response GetClusterFirewallAliases(int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallAliases200Response</returns>
        ApiResponse<GetClusterFirewallAliases200Response> GetClusterFirewallAliasesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterFirewallAliasesSingle(string name, int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterFirewallAliasesSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        GetClusterFirewallGroupRule200Response GetClusterFirewallGroupRule(string group, int pos, int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        ApiResponse<GetClusterFirewallGroupRule200Response> GetClusterFirewallGroupRuleWithHttpInfo(string group, int pos, int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallGroupRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        GetClusterFirewallGroupRules200Response GetClusterFirewallGroupRules(string group, int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallGroupRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        ApiResponse<GetClusterFirewallGroupRules200Response> GetClusterFirewallGroupRulesWithHttpInfo(string group, int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallGroups
        /// </summary>
        /// <remarks>
        /// List security groups.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroups200Response</returns>
        GetClusterFirewallGroups200Response GetClusterFirewallGroups(int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallGroups
        /// </summary>
        /// <remarks>
        /// List security groups.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroups200Response</returns>
        ApiResponse<GetClusterFirewallGroups200Response> GetClusterFirewallGroupsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSet200Response</returns>
        GetClusterFirewallIPSet200Response GetClusterFirewallIPSet(string name, int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSet200Response</returns>
        ApiResponse<GetClusterFirewallIPSet200Response> GetClusterFirewallIPSetWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterFirewallIPSetIP(string cidr, string name, int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterFirewallIPSetIPWithHttpInfo(string cidr, string name, int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallIPSets
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSets200Response</returns>
        GetClusterFirewallIPSets200Response GetClusterFirewallIPSets(int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallIPSets
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSets200Response</returns>
        ApiResponse<GetClusterFirewallIPSets200Response> GetClusterFirewallIPSetsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallMacros
        /// </summary>
        /// <remarks>
        /// List available macros
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallMacros200Response</returns>
        GetClusterFirewallMacros200Response GetClusterFirewallMacros(int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallMacros
        /// </summary>
        /// <remarks>
        /// List available macros
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallMacros200Response</returns>
        ApiResponse<GetClusterFirewallMacros200Response> GetClusterFirewallMacrosWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallOptions200Response</returns>
        GetClusterFirewallOptions200Response GetClusterFirewallOptions(int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallOptions200Response</returns>
        ApiResponse<GetClusterFirewallOptions200Response> GetClusterFirewallOptionsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallRefs200Response</returns>
        GetClusterFirewallRefs200Response GetClusterFirewallRefs(int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallRefs200Response</returns>
        ApiResponse<GetClusterFirewallRefs200Response> GetClusterFirewallRefsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        GetClusterFirewallGroupRule200Response GetClusterFirewallRule(int pos, int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        ApiResponse<GetClusterFirewallGroupRule200Response> GetClusterFirewallRuleWithHttpInfo(int pos, int operationIndex = 0);
        /// <summary>
        /// getClusterFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        GetClusterFirewallGroupRules200Response GetClusterFirewallRules(int operationIndex = 0);

        /// <summary>
        /// getClusterFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        ApiResponse<GetClusterFirewallGroupRules200Response> GetClusterFirewallRulesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterHa
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHa200Response</returns>
        GetClusterHa200Response GetClusterHa(int operationIndex = 0);

        /// <summary>
        /// getClusterHa
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHa200Response</returns>
        ApiResponse<GetClusterHa200Response> GetClusterHaWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterHaGroups
        /// </summary>
        /// <remarks>
        /// Get HA groups. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaGroups200Response</returns>
        GetClusterHaGroups200Response GetClusterHaGroups(int operationIndex = 0);

        /// <summary>
        /// getClusterHaGroups
        /// </summary>
        /// <remarks>
        /// Get HA groups. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaGroups200Response</returns>
        ApiResponse<GetClusterHaGroups200Response> GetClusterHaGroupsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Read ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetClusterHaGroupsSingle(string group, int operationIndex = 0);

        /// <summary>
        /// getClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Read ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetClusterHaGroupsSingleWithHttpInfo(string group, int operationIndex = 0);
        /// <summary>
        /// getClusterHaResources
        /// </summary>
        /// <remarks>
        /// List HA resources.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaResources200Response</returns>
        GetClusterHaResources200Response GetClusterHaResources(int operationIndex = 0);

        /// <summary>
        /// getClusterHaResources
        /// </summary>
        /// <remarks>
        /// List HA resources.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaResources200Response</returns>
        ApiResponse<GetClusterHaResources200Response> GetClusterHaResourcesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Read resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaResourcesSingle200Response</returns>
        GetClusterHaResourcesSingle200Response GetClusterHaResourcesSingle(string sid, int operationIndex = 0);

        /// <summary>
        /// getClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Read resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaResourcesSingle200Response</returns>
        ApiResponse<GetClusterHaResourcesSingle200Response> GetClusterHaResourcesSingleWithHttpInfo(string sid, int operationIndex = 0);
        /// <summary>
        /// getClusterHaRules
        /// </summary>
        /// <remarks>
        /// Get HA rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaRules200Response</returns>
        GetClusterHaRules200Response GetClusterHaRules(int operationIndex = 0);

        /// <summary>
        /// getClusterHaRules
        /// </summary>
        /// <remarks>
        /// Get HA rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaRules200Response</returns>
        ApiResponse<GetClusterHaRules200Response> GetClusterHaRulesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Read HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaRulesSingle200Response</returns>
        GetClusterHaRulesSingle200Response GetClusterHaRulesSingle(string rule, int operationIndex = 0);

        /// <summary>
        /// getClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Read HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaRulesSingle200Response</returns>
        ApiResponse<GetClusterHaRulesSingle200Response> GetClusterHaRulesSingleWithHttpInfo(string rule, int operationIndex = 0);
        /// <summary>
        /// getClusterHaStatus
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterHaStatus(int operationIndex = 0);

        /// <summary>
        /// getClusterHaStatus
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterHaStatusWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterHaStatusCurrent
        /// </summary>
        /// <remarks>
        /// Get HA manger status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaStatusCurrent200Response</returns>
        GetClusterHaStatusCurrent200Response GetClusterHaStatusCurrent(int operationIndex = 0);

        /// <summary>
        /// getClusterHaStatusCurrent
        /// </summary>
        /// <remarks>
        /// Get HA manger status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaStatusCurrent200Response</returns>
        ApiResponse<GetClusterHaStatusCurrent200Response> GetClusterHaStatusCurrentWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterHaStatusManagerstatus
        /// </summary>
        /// <remarks>
        /// Get full HA manger status, including LRM status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterHaStatusManagerstatus(int operationIndex = 0);

        /// <summary>
        /// getClusterHaStatusManagerstatus
        /// </summary>
        /// <remarks>
        /// Get full HA manger status, including LRM status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterHaStatusManagerstatusWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterJobs
        /// </summary>
        /// <remarks>
        /// Index for jobs related endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackupinfo200Response</returns>
        GetClusterBackupinfo200Response GetClusterJobs(int operationIndex = 0);

        /// <summary>
        /// getClusterJobs
        /// </summary>
        /// <remarks>
        /// Index for jobs related endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackupinfo200Response</returns>
        ApiResponse<GetClusterBackupinfo200Response> GetClusterJobsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterJobsRealmsync
        /// </summary>
        /// <remarks>
        /// List configured realm-sync-jobs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterJobsRealmsync200Response</returns>
        GetClusterJobsRealmsync200Response GetClusterJobsRealmsync(int operationIndex = 0);

        /// <summary>
        /// getClusterJobsRealmsync
        /// </summary>
        /// <remarks>
        /// List configured realm-sync-jobs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterJobsRealmsync200Response</returns>
        ApiResponse<GetClusterJobsRealmsync200Response> GetClusterJobsRealmsyncWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Read realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterJobsRealmsyncSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Read realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterJobsRealmsyncSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterJobsScheduleanalyze
        /// </summary>
        /// <remarks>
        /// Returns a list of future schedule runtimes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterJobsScheduleanalyze200Response</returns>
        GetClusterJobsScheduleanalyze200Response GetClusterJobsScheduleanalyze(int operationIndex = 0);

        /// <summary>
        /// getClusterJobsScheduleanalyze
        /// </summary>
        /// <remarks>
        /// Returns a list of future schedule runtimes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterJobsScheduleanalyze200Response</returns>
        ApiResponse<GetClusterJobsScheduleanalyze200Response> GetClusterJobsScheduleanalyzeWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterLog
        /// </summary>
        /// <remarks>
        /// Read cluster log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterLog(int operationIndex = 0);

        /// <summary>
        /// getClusterLog
        /// </summary>
        /// <remarks>
        /// Read cluster log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterLogWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterMapping
        /// </summary>
        /// <remarks>
        /// List resource types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMapping200Response</returns>
        GetClusterMapping200Response GetClusterMapping(int operationIndex = 0);

        /// <summary>
        /// getClusterMapping
        /// </summary>
        /// <remarks>
        /// List resource types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMapping200Response</returns>
        ApiResponse<GetClusterMapping200Response> GetClusterMappingWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterMappingDir
        /// </summary>
        /// <remarks>
        /// List directory mapping
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMappingDir200Response</returns>
        GetClusterMappingDir200Response GetClusterMappingDir(int operationIndex = 0);

        /// <summary>
        /// getClusterMappingDir
        /// </summary>
        /// <remarks>
        /// List directory mapping
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMappingDir200Response</returns>
        ApiResponse<GetClusterMappingDir200Response> GetClusterMappingDirWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Get directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterMappingDirSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Get directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterMappingDirSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterMappingPci
        /// </summary>
        /// <remarks>
        /// List PCI Hardware Mapping
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMappingPci200Response</returns>
        GetClusterMappingPci200Response GetClusterMappingPci(int operationIndex = 0);

        /// <summary>
        /// getClusterMappingPci
        /// </summary>
        /// <remarks>
        /// List PCI Hardware Mapping
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMappingPci200Response</returns>
        ApiResponse<GetClusterMappingPci200Response> GetClusterMappingPciWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Get PCI Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterMappingPciSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Get PCI Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterMappingPciSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterMappingUsb
        /// </summary>
        /// <remarks>
        /// List USB Hardware Mappings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMappingUsb200Response</returns>
        GetClusterMappingUsb200Response GetClusterMappingUsb(int operationIndex = 0);

        /// <summary>
        /// getClusterMappingUsb
        /// </summary>
        /// <remarks>
        /// List USB Hardware Mappings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMappingUsb200Response</returns>
        ApiResponse<GetClusterMappingUsb200Response> GetClusterMappingUsbWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Get USB Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterMappingUsbSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Get USB Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterMappingUsbSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterMetrics
        /// </summary>
        /// <remarks>
        /// Metrics index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterMetrics(int operationIndex = 0);

        /// <summary>
        /// getClusterMetrics
        /// </summary>
        /// <remarks>
        /// Metrics index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterMetricsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterMetricsExport
        /// </summary>
        /// <remarks>
        /// Retrieve metrics of the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsExport200Response</returns>
        GetClusterMetricsExport200Response GetClusterMetricsExport(int operationIndex = 0);

        /// <summary>
        /// getClusterMetricsExport
        /// </summary>
        /// <remarks>
        /// Retrieve metrics of the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsExport200Response</returns>
        ApiResponse<GetClusterMetricsExport200Response> GetClusterMetricsExportWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterMetricsServer
        /// </summary>
        /// <remarks>
        /// List configured metric servers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServer200Response</returns>
        GetClusterMetricsServer200Response GetClusterMetricsServer(int operationIndex = 0);

        /// <summary>
        /// getClusterMetricsServer
        /// </summary>
        /// <remarks>
        /// List configured metric servers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServer200Response</returns>
        ApiResponse<GetClusterMetricsServer200Response> GetClusterMetricsServerWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Read metric server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterMetricsServerSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Read metric server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterMetricsServerSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterNextid
        /// </summary>
        /// <remarks>
        /// Get next free VMID. Pass a VMID to assert that its free (at time of check).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNextid200Response</returns>
        GetClusterNextid200Response GetClusterNextid(int operationIndex = 0);

        /// <summary>
        /// getClusterNextid
        /// </summary>
        /// <remarks>
        /// Get next free VMID. Pass a VMID to assert that its free (at time of check).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNextid200Response</returns>
        ApiResponse<GetClusterNextid200Response> GetClusterNextidWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotifications
        /// </summary>
        /// <remarks>
        /// Index for notification-related API endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterNotifications(int operationIndex = 0);

        /// <summary>
        /// getClusterNotifications
        /// </summary>
        /// <remarks>
        /// Index for notification-related API endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterNotificationsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpoints
        /// </summary>
        /// <remarks>
        /// Index for all available endpoint types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterNotificationsEndpoints(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpoints
        /// </summary>
        /// <remarks>
        /// Index for all available endpoint types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterNotificationsEndpointsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpointsGotify
        /// </summary>
        /// <remarks>
        /// Returns a list of all gotify endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsGotify200Response</returns>
        GetClusterNotificationsEndpointsGotify200Response GetClusterNotificationsEndpointsGotify(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpointsGotify
        /// </summary>
        /// <remarks>
        /// Returns a list of all gotify endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsGotify200Response</returns>
        ApiResponse<GetClusterNotificationsEndpointsGotify200Response> GetClusterNotificationsEndpointsGotifyWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Return a specific gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsGotifySingle200Response</returns>
        GetClusterNotificationsEndpointsGotifySingle200Response GetClusterNotificationsEndpointsGotifySingle(string name, int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Return a specific gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsGotifySingle200Response</returns>
        ApiResponse<GetClusterNotificationsEndpointsGotifySingle200Response> GetClusterNotificationsEndpointsGotifySingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpointsSendmail
        /// </summary>
        /// <remarks>
        /// Returns a list of all sendmail endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsSendmail200Response</returns>
        GetClusterNotificationsEndpointsSendmail200Response GetClusterNotificationsEndpointsSendmail(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpointsSendmail
        /// </summary>
        /// <remarks>
        /// Returns a list of all sendmail endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsSendmail200Response</returns>
        ApiResponse<GetClusterNotificationsEndpointsSendmail200Response> GetClusterNotificationsEndpointsSendmailWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Return a specific sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsSendmailSingle200Response</returns>
        GetClusterNotificationsEndpointsSendmailSingle200Response GetClusterNotificationsEndpointsSendmailSingle(string name, int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Return a specific sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsSendmailSingle200Response</returns>
        ApiResponse<GetClusterNotificationsEndpointsSendmailSingle200Response> GetClusterNotificationsEndpointsSendmailSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpointsSmtp
        /// </summary>
        /// <remarks>
        /// Returns a list of all smtp endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsSmtp200Response</returns>
        GetClusterNotificationsEndpointsSmtp200Response GetClusterNotificationsEndpointsSmtp(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpointsSmtp
        /// </summary>
        /// <remarks>
        /// Returns a list of all smtp endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsSmtp200Response</returns>
        ApiResponse<GetClusterNotificationsEndpointsSmtp200Response> GetClusterNotificationsEndpointsSmtpWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Return a specific smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsSmtpSingle200Response</returns>
        GetClusterNotificationsEndpointsSmtpSingle200Response GetClusterNotificationsEndpointsSmtpSingle(string name, int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Return a specific smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsSmtpSingle200Response</returns>
        ApiResponse<GetClusterNotificationsEndpointsSmtpSingle200Response> GetClusterNotificationsEndpointsSmtpSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpointsWebhook
        /// </summary>
        /// <remarks>
        /// Returns a list of all webhook endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsWebhook200Response</returns>
        GetClusterNotificationsEndpointsWebhook200Response GetClusterNotificationsEndpointsWebhook(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpointsWebhook
        /// </summary>
        /// <remarks>
        /// Returns a list of all webhook endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsWebhook200Response</returns>
        ApiResponse<GetClusterNotificationsEndpointsWebhook200Response> GetClusterNotificationsEndpointsWebhookWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Return a specific webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsWebhookSingle200Response</returns>
        GetClusterNotificationsEndpointsWebhookSingle200Response GetClusterNotificationsEndpointsWebhookSingle(string name, int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Return a specific webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsWebhookSingle200Response</returns>
        ApiResponse<GetClusterNotificationsEndpointsWebhookSingle200Response> GetClusterNotificationsEndpointsWebhookSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsMatcherfields
        /// </summary>
        /// <remarks>
        /// Returns known notification metadata fields
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsMatcherfields200Response</returns>
        GetClusterNotificationsMatcherfields200Response GetClusterNotificationsMatcherfields(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsMatcherfields
        /// </summary>
        /// <remarks>
        /// Returns known notification metadata fields
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsMatcherfields200Response</returns>
        ApiResponse<GetClusterNotificationsMatcherfields200Response> GetClusterNotificationsMatcherfieldsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsMatcherfieldvalues
        /// </summary>
        /// <remarks>
        /// Returns known notification metadata fields and their known values
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsMatcherfieldvalues200Response</returns>
        GetClusterNotificationsMatcherfieldvalues200Response GetClusterNotificationsMatcherfieldvalues(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsMatcherfieldvalues
        /// </summary>
        /// <remarks>
        /// Returns known notification metadata fields and their known values
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsMatcherfieldvalues200Response</returns>
        ApiResponse<GetClusterNotificationsMatcherfieldvalues200Response> GetClusterNotificationsMatcherfieldvaluesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsMatchers
        /// </summary>
        /// <remarks>
        /// Returns a list of all matchers
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsMatchers200Response</returns>
        GetClusterNotificationsMatchers200Response GetClusterNotificationsMatchers(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsMatchers
        /// </summary>
        /// <remarks>
        /// Returns a list of all matchers
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsMatchers200Response</returns>
        ApiResponse<GetClusterNotificationsMatchers200Response> GetClusterNotificationsMatchersWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Return a specific matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsMatchersSingle200Response</returns>
        GetClusterNotificationsMatchersSingle200Response GetClusterNotificationsMatchersSingle(string name, int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Return a specific matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsMatchersSingle200Response</returns>
        ApiResponse<GetClusterNotificationsMatchersSingle200Response> GetClusterNotificationsMatchersSingleWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// getClusterNotificationsTargets
        /// </summary>
        /// <remarks>
        /// Returns a list of all entities that can be used as notification targets.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsTargets200Response</returns>
        GetClusterNotificationsTargets200Response GetClusterNotificationsTargets(int operationIndex = 0);

        /// <summary>
        /// getClusterNotificationsTargets
        /// </summary>
        /// <remarks>
        /// Returns a list of all entities that can be used as notification targets.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsTargets200Response</returns>
        ApiResponse<GetClusterNotificationsTargets200Response> GetClusterNotificationsTargetsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterOptions
        /// </summary>
        /// <remarks>
        /// Get datacenter options. Without &#39;Sys.Audit&#39; on &#39;/&#39; not all options are returned.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterOptions(int operationIndex = 0);

        /// <summary>
        /// getClusterOptions
        /// </summary>
        /// <remarks>
        /// Get datacenter options. Without &#39;Sys.Audit&#39; on &#39;/&#39; not all options are returned.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterOptionsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterReplication
        /// </summary>
        /// <remarks>
        /// List replication jobs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterReplication200Response</returns>
        GetClusterReplication200Response GetClusterReplication(int operationIndex = 0);

        /// <summary>
        /// getClusterReplication
        /// </summary>
        /// <remarks>
        /// List replication jobs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterReplication200Response</returns>
        ApiResponse<GetClusterReplication200Response> GetClusterReplicationWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Read replication job configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterReplicationSingle200Response</returns>
        GetClusterReplicationSingle200Response GetClusterReplicationSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Read replication job configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterReplicationSingle200Response</returns>
        ApiResponse<GetClusterReplicationSingle200Response> GetClusterReplicationSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterResources
        /// </summary>
        /// <remarks>
        /// Resources index (cluster wide).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterResources200Response</returns>
        GetClusterResources200Response GetClusterResources(int operationIndex = 0);

        /// <summary>
        /// getClusterResources
        /// </summary>
        /// <remarks>
        /// Resources index (cluster wide).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterResources200Response</returns>
        ApiResponse<GetClusterResources200Response> GetClusterResourcesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSDN
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHa200Response</returns>
        GetClusterHa200Response GetClusterSDN(int operationIndex = 0);

        /// <summary>
        /// getClusterSDN
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHa200Response</returns>
        ApiResponse<GetClusterHa200Response> GetClusterSDNWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSDNController
        /// </summary>
        /// <remarks>
        /// Read sdn controller configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetClusterSDNController(string controller, int operationIndex = 0);

        /// <summary>
        /// getClusterSDNController
        /// </summary>
        /// <remarks>
        /// Read sdn controller configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetClusterSDNControllerWithHttpInfo(string controller, int operationIndex = 0);
        /// <summary>
        /// getClusterSDNControllers
        /// </summary>
        /// <remarks>
        /// SDN controllers index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSDNControllers200Response</returns>
        GetClusterSDNControllers200Response GetClusterSDNControllers(int operationIndex = 0);

        /// <summary>
        /// getClusterSDNControllers
        /// </summary>
        /// <remarks>
        /// SDN controllers index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSDNControllers200Response</returns>
        ApiResponse<GetClusterSDNControllers200Response> GetClusterSDNControllersWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Read sdn vnet configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetClusterSDNVnet(string vnet, int operationIndex = 0);

        /// <summary>
        /// getClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Read sdn vnet configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetClusterSDNVnetWithHttpInfo(string vnet, int operationIndex = 0);
        /// <summary>
        /// getClusterSDNVnets
        /// </summary>
        /// <remarks>
        /// SDN vnets index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSDNVnets200Response</returns>
        GetClusterSDNVnets200Response GetClusterSDNVnets(int operationIndex = 0);

        /// <summary>
        /// getClusterSDNVnets
        /// </summary>
        /// <remarks>
        /// SDN vnets index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSDNVnets200Response</returns>
        ApiResponse<GetClusterSDNVnets200Response> GetClusterSDNVnetsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Read sdn zone configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetClusterSDNZone(string zone, int operationIndex = 0);

        /// <summary>
        /// getClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Read sdn zone configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetClusterSDNZoneWithHttpInfo(string zone, int operationIndex = 0);
        /// <summary>
        /// getClusterSDNZones
        /// </summary>
        /// <remarks>
        /// SDN zones index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSDNZones200Response</returns>
        GetClusterSDNZones200Response GetClusterSDNZones(int operationIndex = 0);

        /// <summary>
        /// getClusterSDNZones
        /// </summary>
        /// <remarks>
        /// SDN zones index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSDNZones200Response</returns>
        ApiResponse<GetClusterSDNZones200Response> GetClusterSDNZonesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSdnDns
        /// </summary>
        /// <remarks>
        /// SDN dns index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnDns200Response</returns>
        GetClusterSdnDns200Response GetClusterSdnDns(int operationIndex = 0);

        /// <summary>
        /// getClusterSdnDns
        /// </summary>
        /// <remarks>
        /// SDN dns index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnDns200Response</returns>
        ApiResponse<GetClusterSdnDns200Response> GetClusterSdnDnsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn dns configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterSdnDnsSingle(string dns, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn dns configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterSdnDnsSingleWithHttpInfo(string dns, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnFabrics
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetClusterSdnFabrics(int operationIndex = 0);

        /// <summary>
        /// getClusterSdnFabrics
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetClusterSdnFabricsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSdnFabricsAll
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsAll200Response</returns>
        GetClusterSdnFabricsAll200Response GetClusterSdnFabricsAll(int operationIndex = 0);

        /// <summary>
        /// getClusterSdnFabricsAll
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsAll200Response</returns>
        ApiResponse<GetClusterSdnFabricsAll200Response> GetClusterSdnFabricsAllWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSdnFabricsFabric
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsFabric200Response</returns>
        GetClusterSdnFabricsFabric200Response GetClusterSdnFabricsFabric(int operationIndex = 0);

        /// <summary>
        /// getClusterSdnFabricsFabric
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsFabric200Response</returns>
        ApiResponse<GetClusterSdnFabricsFabric200Response> GetClusterSdnFabricsFabricWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Update a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsFabricSingle200Response</returns>
        GetClusterSdnFabricsFabricSingle200Response GetClusterSdnFabricsFabricSingle(string id, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Update a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsFabricSingle200Response</returns>
        ApiResponse<GetClusterSdnFabricsFabricSingle200Response> GetClusterSdnFabricsFabricSingleWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnFabricsNode
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsNode200Response</returns>
        GetClusterSdnFabricsNode200Response GetClusterSdnFabricsNode(int operationIndex = 0);

        /// <summary>
        /// getClusterSdnFabricsNode
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsNode200Response</returns>
        ApiResponse<GetClusterSdnFabricsNode200Response> GetClusterSdnFabricsNodeWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSdnFabricsNodeSingle
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsNode200Response</returns>
        GetClusterSdnFabricsNode200Response GetClusterSdnFabricsNodeSingle(string fabricId, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnFabricsNodeSingle
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsNode200Response</returns>
        ApiResponse<GetClusterSdnFabricsNode200Response> GetClusterSdnFabricsNodeSingleWithHttpInfo(string fabricId, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Get a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetClusterSdnFabricsNodeSingleSingle(string fabricId, string nodeId, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Get a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetClusterSdnFabricsNodeSingleSingleWithHttpInfo(string fabricId, string nodeId, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnIpams
        /// </summary>
        /// <remarks>
        /// SDN ipams index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnIpams200Response</returns>
        GetClusterSdnIpams200Response GetClusterSdnIpams(int operationIndex = 0);

        /// <summary>
        /// getClusterSdnIpams
        /// </summary>
        /// <remarks>
        /// SDN ipams index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnIpams200Response</returns>
        ApiResponse<GetClusterSdnIpams200Response> GetClusterSdnIpamsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn ipam configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterSdnIpamsSingle(string ipam, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn ipam configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterSdnIpamsSingleWithHttpInfo(string ipam, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnIpamsSingleStatus
        /// </summary>
        /// <remarks>
        /// List PVE IPAM Entries
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnIpamsSingleStatus200Response</returns>
        GetClusterSdnIpamsSingleStatus200Response GetClusterSdnIpamsSingleStatus(string ipam, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnIpamsSingleStatus
        /// </summary>
        /// <remarks>
        /// List PVE IPAM Entries
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnIpamsSingleStatus200Response</returns>
        ApiResponse<GetClusterSdnIpamsSingleStatus200Response> GetClusterSdnIpamsSingleStatusWithHttpInfo(string ipam, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnVnetsSingleFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterSdnVnetsSingleFirewall(string vnet, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnVnetsSingleFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterSdnVnetsSingleFirewallWithHttpInfo(string vnet, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnVnetsSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get vnet firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnVnetsSingleFirewallOptions200Response</returns>
        GetClusterSdnVnetsSingleFirewallOptions200Response GetClusterSdnVnetsSingleFirewallOptions(string vnet, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get vnet firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnVnetsSingleFirewallOptions200Response</returns>
        ApiResponse<GetClusterSdnVnetsSingleFirewallOptions200Response> GetClusterSdnVnetsSingleFirewallOptionsWithHttpInfo(string vnet, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        GetClusterFirewallGroupRules200Response GetClusterSdnVnetsSingleFirewallRules(string vnet, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        ApiResponse<GetClusterFirewallGroupRules200Response> GetClusterSdnVnetsSingleFirewallRulesWithHttpInfo(string vnet, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        GetClusterFirewallGroupRule200Response GetClusterSdnVnetsSingleFirewallRulesSingle(int pos, string vnet, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        ApiResponse<GetClusterFirewallGroupRule200Response> GetClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(int pos, string vnet, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnVnetsSingleSubnets
        /// </summary>
        /// <remarks>
        /// SDN subnets index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetClusterSdnVnetsSingleSubnets(string vnet, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnVnetsSingleSubnets
        /// </summary>
        /// <remarks>
        /// SDN subnets index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetClusterSdnVnetsSingleSubnetsWithHttpInfo(string vnet, int operationIndex = 0);
        /// <summary>
        /// getClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn subnet configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetClusterSdnVnetsSingleSubnetsSingle(string subnet, string vnet, int operationIndex = 0);

        /// <summary>
        /// getClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn subnet configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(string subnet, string vnet, int operationIndex = 0);
        /// <summary>
        /// getClusterStatus
        /// </summary>
        /// <remarks>
        /// Get cluster status information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterStatus200Response</returns>
        GetClusterStatus200Response GetClusterStatus(int operationIndex = 0);

        /// <summary>
        /// getClusterStatus
        /// </summary>
        /// <remarks>
        /// Get cluster status information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterStatus200Response</returns>
        ApiResponse<GetClusterStatus200Response> GetClusterStatusWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getClusterTasks
        /// </summary>
        /// <remarks>
        /// List recent tasks (cluster wide).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterTasks200Response</returns>
        GetClusterTasks200Response GetClusterTasks(int operationIndex = 0);

        /// <summary>
        /// getClusterTasks
        /// </summary>
        /// <remarks>
        /// List recent tasks (cluster wide).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterTasks200Response</returns>
        ApiResponse<GetClusterTasks200Response> GetClusterTasksWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getCurrentVMStatus
        /// </summary>
        /// <remarks>
        /// Get virtual machine status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCurrentVMStatus200Response</returns>
        GetCurrentVMStatus200Response GetCurrentVMStatus(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getCurrentVMStatus
        /// </summary>
        /// <remarks>
        /// Get virtual machine status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCurrentVMStatus200Response</returns>
        ApiResponse<GetCurrentVMStatus200Response> GetCurrentVMStatusWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNode
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNode(string node, int operationIndex = 0);

        /// <summary>
        /// getNode
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodeWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodeFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodeFirewall(string node, int operationIndex = 0);

        /// <summary>
        /// getNodeFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodeFirewallWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodeFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get host firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeFirewallOptions200Response</returns>
        GetNodeFirewallOptions200Response GetNodeFirewallOptions(string node, int operationIndex = 0);

        /// <summary>
        /// getNodeFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get host firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeFirewallOptions200Response</returns>
        ApiResponse<GetNodeFirewallOptions200Response> GetNodeFirewallOptionsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        GetClusterFirewallGroupRule200Response GetNodeFirewallRule(string node, int pos, int operationIndex = 0);

        /// <summary>
        /// getNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        ApiResponse<GetClusterFirewallGroupRule200Response> GetNodeFirewallRuleWithHttpInfo(string node, int pos, int operationIndex = 0);
        /// <summary>
        /// getNodeFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        GetClusterFirewallGroupRules200Response GetNodeFirewallRules(string node, int operationIndex = 0);

        /// <summary>
        /// getNodeFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        ApiResponse<GetClusterFirewallGroupRules200Response> GetNodeFirewallRulesWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodeRRD
        /// </summary>
        /// <remarks>
        /// Read node RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMRRD200Response</returns>
        GetVMRRD200Response GetNodeRRD(string node, int operationIndex = 0);

        /// <summary>
        /// getNodeRRD
        /// </summary>
        /// <remarks>
        /// Read node RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMRRD200Response</returns>
        ApiResponse<GetVMRRD200Response> GetNodeRRDWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodeRRDData
        /// </summary>
        /// <remarks>
        /// Read node RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodeRRDData(string node, int operationIndex = 0);

        /// <summary>
        /// getNodeRRDData
        /// </summary>
        /// <remarks>
        /// Read node RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodeRRDDataWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodeSDN
        /// </summary>
        /// <remarks>
        /// SDN index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodeSDN(string node, int operationIndex = 0);

        /// <summary>
        /// getNodeSDN
        /// </summary>
        /// <remarks>
        /// SDN index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodeSDNWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodeSDNZone
        /// </summary>
        /// <remarks>
        /// Directory index for SDN zone status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetNodeSDNZone(string node, string zone, int operationIndex = 0);

        /// <summary>
        /// getNodeSDNZone
        /// </summary>
        /// <remarks>
        /// Directory index for SDN zone status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetNodeSDNZoneWithHttpInfo(string node, string zone, int operationIndex = 0);
        /// <summary>
        /// getNodeSDNZoneContent
        /// </summary>
        /// <remarks>
        /// List zone content.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeSDNZoneContent200Response</returns>
        GetNodeSDNZoneContent200Response GetNodeSDNZoneContent(string node, string zone, int operationIndex = 0);

        /// <summary>
        /// getNodeSDNZoneContent
        /// </summary>
        /// <remarks>
        /// List zone content.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeSDNZoneContent200Response</returns>
        ApiResponse<GetNodeSDNZoneContent200Response> GetNodeSDNZoneContentWithHttpInfo(string node, string zone, int operationIndex = 0);
        /// <summary>
        /// getNodeSDNZones
        /// </summary>
        /// <remarks>
        /// Get status for all zones.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeSDNZones200Response</returns>
        GetNodeSDNZones200Response GetNodeSDNZones(string node, int operationIndex = 0);

        /// <summary>
        /// getNodeSDNZones
        /// </summary>
        /// <remarks>
        /// Get status for all zones.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeSDNZones200Response</returns>
        ApiResponse<GetNodeSDNZones200Response> GetNodeSDNZonesWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodeTask
        /// </summary>
        /// <remarks>
        /// getNodeTask
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodeTask(string node, string upid, int operationIndex = 0);

        /// <summary>
        /// getNodeTask
        /// </summary>
        /// <remarks>
        /// getNodeTask
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodeTaskWithHttpInfo(string node, string upid, int operationIndex = 0);
        /// <summary>
        /// getNodeTaskLog
        /// </summary>
        /// <remarks>
        /// Read task log.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        GetNodesSingleQemuSingleFirewallLog200Response GetNodeTaskLog(string node, string upid, int operationIndex = 0);

        /// <summary>
        /// getNodeTaskLog
        /// </summary>
        /// <remarks>
        /// Read task log.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodeTaskLogWithHttpInfo(string node, string upid, int operationIndex = 0);
        /// <summary>
        /// getNodeTaskStatus
        /// </summary>
        /// <remarks>
        /// Read task status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeTaskStatus200Response</returns>
        GetNodeTaskStatus200Response GetNodeTaskStatus(string node, string upid, int operationIndex = 0);

        /// <summary>
        /// getNodeTaskStatus
        /// </summary>
        /// <remarks>
        /// Read task status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeTaskStatus200Response</returns>
        ApiResponse<GetNodeTaskStatus200Response> GetNodeTaskStatusWithHttpInfo(string node, string upid, int operationIndex = 0);
        /// <summary>
        /// getNodeTasks
        /// </summary>
        /// <remarks>
        /// Read task list for one node (finished tasks).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeTasks200Response</returns>
        GetNodeTasks200Response GetNodeTasks(string node, int operationIndex = 0);

        /// <summary>
        /// getNodeTasks
        /// </summary>
        /// <remarks>
        /// Read task list for one node (finished tasks).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeTasks200Response</returns>
        ApiResponse<GetNodeTasks200Response> GetNodeTasksWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodes
        /// </summary>
        /// <remarks>
        /// Cluster node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodes200Response</returns>
        GetNodes200Response GetNodes(int operationIndex = 0);

        /// <summary>
        /// getNodes
        /// </summary>
        /// <remarks>
        /// Cluster node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodes200Response</returns>
        ApiResponse<GetNodes200Response> GetNodesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getNodesSingleAplinfo
        /// </summary>
        /// <remarks>
        /// Get list of appliances.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleAplinfo(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleAplinfo
        /// </summary>
        /// <remarks>
        /// Get list of appliances.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleAplinfoWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleApt
        /// </summary>
        /// <remarks>
        /// Directory index for apt (Advanced Package Tool).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHa200Response</returns>
        GetClusterHa200Response GetNodesSingleApt(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleApt
        /// </summary>
        /// <remarks>
        /// Directory index for apt (Advanced Package Tool).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHa200Response</returns>
        ApiResponse<GetClusterHa200Response> GetNodesSingleAptWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleAptChangelog
        /// </summary>
        /// <remarks>
        /// Get package changelogs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetNodesSingleAptChangelog(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleAptChangelog
        /// </summary>
        /// <remarks>
        /// Get package changelogs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetNodesSingleAptChangelogWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Get APT repository information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleAptRepositories200Response</returns>
        GetNodesSingleAptRepositories200Response GetNodesSingleAptRepositories(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Get APT repository information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleAptRepositories200Response</returns>
        ApiResponse<GetNodesSingleAptRepositories200Response> GetNodesSingleAptRepositoriesWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleAptUpdate
        /// </summary>
        /// <remarks>
        /// List available updates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleAptUpdate200Response</returns>
        GetNodesSingleAptUpdate200Response GetNodesSingleAptUpdate(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleAptUpdate
        /// </summary>
        /// <remarks>
        /// List available updates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleAptUpdate200Response</returns>
        ApiResponse<GetNodesSingleAptUpdate200Response> GetNodesSingleAptUpdateWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleAptVersions
        /// </summary>
        /// <remarks>
        /// Get package information for important Proxmox packages.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleAptVersions200Response</returns>
        GetNodesSingleAptVersions200Response GetNodesSingleAptVersions(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleAptVersions
        /// </summary>
        /// <remarks>
        /// Get package information for important Proxmox packages.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleAptVersions200Response</returns>
        ApiResponse<GetNodesSingleAptVersions200Response> GetNodesSingleAptVersionsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCapabilities
        /// </summary>
        /// <remarks>
        /// Node capabilities index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleCapabilities(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCapabilities
        /// </summary>
        /// <remarks>
        /// Node capabilities index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleCapabilitiesWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCapabilitiesQemu
        /// </summary>
        /// <remarks>
        /// QEMU capabilities index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleCapabilitiesQemu(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCapabilitiesQemu
        /// </summary>
        /// <remarks>
        /// QEMU capabilities index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleCapabilitiesQemuWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpu
        /// </summary>
        /// <remarks>
        /// List all custom and default CPU models.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCapabilitiesQemuCpu200Response</returns>
        GetNodesSingleCapabilitiesQemuCpu200Response GetNodesSingleCapabilitiesQemuCpu(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpu
        /// </summary>
        /// <remarks>
        /// List all custom and default CPU models.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCapabilitiesQemuCpu200Response</returns>
        ApiResponse<GetNodesSingleCapabilitiesQemuCpu200Response> GetNodesSingleCapabilitiesQemuCpuWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpuflags
        /// </summary>
        /// <remarks>
        /// List of available VM-specific CPU flags.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCapabilitiesQemuCpuflags200Response</returns>
        GetNodesSingleCapabilitiesQemuCpuflags200Response GetNodesSingleCapabilitiesQemuCpuflags(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpuflags
        /// </summary>
        /// <remarks>
        /// List of available VM-specific CPU flags.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCapabilitiesQemuCpuflags200Response</returns>
        ApiResponse<GetNodesSingleCapabilitiesQemuCpuflags200Response> GetNodesSingleCapabilitiesQemuCpuflagsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCapabilitiesQemuMachines
        /// </summary>
        /// <remarks>
        /// Get available QEMU/KVM machine types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCapabilitiesQemuMachines200Response</returns>
        GetNodesSingleCapabilitiesQemuMachines200Response GetNodesSingleCapabilitiesQemuMachines(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMachines
        /// </summary>
        /// <remarks>
        /// Get available QEMU/KVM machine types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCapabilitiesQemuMachines200Response</returns>
        ApiResponse<GetNodesSingleCapabilitiesQemuMachines200Response> GetNodesSingleCapabilitiesQemuMachinesWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCapabilitiesQemuMigration
        /// </summary>
        /// <remarks>
        /// Get node-specific QEMU migration capabilities of the node. Requires the &#39;Sys.Audit&#39; permission on &#39;/nodes/&lt;node&gt;&#39;.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCapabilitiesQemuMigration200Response</returns>
        GetNodesSingleCapabilitiesQemuMigration200Response GetNodesSingleCapabilitiesQemuMigration(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMigration
        /// </summary>
        /// <remarks>
        /// Get node-specific QEMU migration capabilities of the node. Requires the &#39;Sys.Audit&#39; permission on &#39;/nodes/&lt;node&gt;&#39;.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCapabilitiesQemuMigration200Response</returns>
        ApiResponse<GetNodesSingleCapabilitiesQemuMigration200Response> GetNodesSingleCapabilitiesQemuMigrationWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCeph
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleCeph(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCeph
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleCephWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephCfg
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleCephCfg(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephCfg
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleCephCfgWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephCfgDb
        /// </summary>
        /// <remarks>
        /// Get the Ceph configuration database.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephCfgDb200Response</returns>
        GetNodesSingleCephCfgDb200Response GetNodesSingleCephCfgDb(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephCfgDb
        /// </summary>
        /// <remarks>
        /// Get the Ceph configuration database.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephCfgDb200Response</returns>
        ApiResponse<GetNodesSingleCephCfgDb200Response> GetNodesSingleCephCfgDbWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephCfgRaw
        /// </summary>
        /// <remarks>
        /// Get the Ceph configuration file.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetNodesSingleCephCfgRaw(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephCfgRaw
        /// </summary>
        /// <remarks>
        /// Get the Ceph configuration file.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetNodesSingleCephCfgRawWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephCfgValue
        /// </summary>
        /// <remarks>
        /// Get configured values from either the config file or config DB.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephCfgValue200Response</returns>
        GetNodesSingleCephCfgValue200Response GetNodesSingleCephCfgValue(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephCfgValue
        /// </summary>
        /// <remarks>
        /// Get configured values from either the config file or config DB.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephCfgValue200Response</returns>
        ApiResponse<GetNodesSingleCephCfgValue200Response> GetNodesSingleCephCfgValueWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephCmdsafety
        /// </summary>
        /// <remarks>
        /// Heuristical check if it is safe to perform an action.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephCmdsafety200Response</returns>
        GetNodesSingleCephCmdsafety200Response GetNodesSingleCephCmdsafety(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephCmdsafety
        /// </summary>
        /// <remarks>
        /// Heuristical check if it is safe to perform an action.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephCmdsafety200Response</returns>
        ApiResponse<GetNodesSingleCephCmdsafety200Response> GetNodesSingleCephCmdsafetyWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephCrush
        /// </summary>
        /// <remarks>
        /// Get OSD crush map
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetNodesSingleCephCrush(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephCrush
        /// </summary>
        /// <remarks>
        /// Get OSD crush map
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetNodesSingleCephCrushWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephFs
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephFs200Response</returns>
        GetNodesSingleCephFs200Response GetNodesSingleCephFs(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephFs
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephFs200Response</returns>
        ApiResponse<GetNodesSingleCephFs200Response> GetNodesSingleCephFsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephLog
        /// </summary>
        /// <remarks>
        /// Read ceph log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleCephLog(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephLog
        /// </summary>
        /// <remarks>
        /// Read ceph log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleCephLogWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephMds
        /// </summary>
        /// <remarks>
        /// MDS directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephMds200Response</returns>
        GetNodesSingleCephMds200Response GetNodesSingleCephMds(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephMds
        /// </summary>
        /// <remarks>
        /// MDS directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephMds200Response</returns>
        ApiResponse<GetNodesSingleCephMds200Response> GetNodesSingleCephMdsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephMgr
        /// </summary>
        /// <remarks>
        /// MGR directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephMgr200Response</returns>
        GetNodesSingleCephMgr200Response GetNodesSingleCephMgr(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephMgr
        /// </summary>
        /// <remarks>
        /// MGR directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephMgr200Response</returns>
        ApiResponse<GetNodesSingleCephMgr200Response> GetNodesSingleCephMgrWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephMon
        /// </summary>
        /// <remarks>
        /// Get Ceph monitor list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephMon200Response</returns>
        GetNodesSingleCephMon200Response GetNodesSingleCephMon(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephMon
        /// </summary>
        /// <remarks>
        /// Get Ceph monitor list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephMon200Response</returns>
        ApiResponse<GetNodesSingleCephMon200Response> GetNodesSingleCephMonWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephOsd
        /// </summary>
        /// <remarks>
        /// Get Ceph osd list/tree.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetNodesSingleCephOsd(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephOsd
        /// </summary>
        /// <remarks>
        /// Get Ceph osd list/tree.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleCephOsdWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephOsdSingle
        /// </summary>
        /// <remarks>
        /// OSD index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleCephOsdSingle(string node, int osdid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephOsdSingle
        /// </summary>
        /// <remarks>
        /// OSD index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleCephOsdSingleWithHttpInfo(string node, int osdid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephOsdSingleLvinfo
        /// </summary>
        /// <remarks>
        /// Get OSD volume details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephOsdSingleLvinfo200Response</returns>
        GetNodesSingleCephOsdSingleLvinfo200Response GetNodesSingleCephOsdSingleLvinfo(string node, int osdid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephOsdSingleLvinfo
        /// </summary>
        /// <remarks>
        /// Get OSD volume details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephOsdSingleLvinfo200Response</returns>
        ApiResponse<GetNodesSingleCephOsdSingleLvinfo200Response> GetNodesSingleCephOsdSingleLvinfoWithHttpInfo(string node, int osdid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephOsdSingleMetadata
        /// </summary>
        /// <remarks>
        /// Get OSD details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephOsdSingleMetadata200Response</returns>
        GetNodesSingleCephOsdSingleMetadata200Response GetNodesSingleCephOsdSingleMetadata(string node, int osdid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephOsdSingleMetadata
        /// </summary>
        /// <remarks>
        /// Get OSD details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephOsdSingleMetadata200Response</returns>
        ApiResponse<GetNodesSingleCephOsdSingleMetadata200Response> GetNodesSingleCephOsdSingleMetadataWithHttpInfo(string node, int osdid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephPool
        /// </summary>
        /// <remarks>
        /// List all pools and their settings (which are settable by the POST/PUT endpoints).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephPool200Response</returns>
        GetNodesSingleCephPool200Response GetNodesSingleCephPool(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephPool
        /// </summary>
        /// <remarks>
        /// List all pools and their settings (which are settable by the POST/PUT endpoints).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephPool200Response</returns>
        ApiResponse<GetNodesSingleCephPool200Response> GetNodesSingleCephPoolWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Pool index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleCephPoolSingle(string name, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Pool index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleCephPoolSingleWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephPoolSingleStatus
        /// </summary>
        /// <remarks>
        /// Show the current pool status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephPoolSingleStatus200Response</returns>
        GetNodesSingleCephPoolSingleStatus200Response GetNodesSingleCephPoolSingleStatus(string name, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephPoolSingleStatus
        /// </summary>
        /// <remarks>
        /// Show the current pool status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephPoolSingleStatus200Response</returns>
        ApiResponse<GetNodesSingleCephPoolSingleStatus200Response> GetNodesSingleCephPoolSingleStatusWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephRules
        /// </summary>
        /// <remarks>
        /// List ceph rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephRules200Response</returns>
        GetNodesSingleCephRules200Response GetNodesSingleCephRules(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephRules
        /// </summary>
        /// <remarks>
        /// List ceph rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephRules200Response</returns>
        ApiResponse<GetNodesSingleCephRules200Response> GetNodesSingleCephRulesWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCephStatus
        /// </summary>
        /// <remarks>
        /// Get ceph status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetNodesSingleCephStatus(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCephStatus
        /// </summary>
        /// <remarks>
        /// Get ceph status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleCephStatusWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCertificates
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleCertificates(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCertificates
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleCertificatesWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCertificatesAcme
        /// </summary>
        /// <remarks>
        /// ACME index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleCertificatesAcme(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCertificatesAcme
        /// </summary>
        /// <remarks>
        /// ACME index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleCertificatesAcmeWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleCertificatesInfo
        /// </summary>
        /// <remarks>
        /// Get information about node&#39;s certificates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCertificatesInfo200Response</returns>
        GetNodesSingleCertificatesInfo200Response GetNodesSingleCertificatesInfo(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleCertificatesInfo
        /// </summary>
        /// <remarks>
        /// Get information about node&#39;s certificates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCertificatesInfo200Response</returns>
        ApiResponse<GetNodesSingleCertificatesInfo200Response> GetNodesSingleCertificatesInfoWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleConfig
        /// </summary>
        /// <remarks>
        /// Get node configuration options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleConfig200Response</returns>
        GetNodesSingleConfig200Response GetNodesSingleConfig(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleConfig
        /// </summary>
        /// <remarks>
        /// Get node configuration options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleConfig200Response</returns>
        ApiResponse<GetNodesSingleConfig200Response> GetNodesSingleConfigWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDisks
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleDisks(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDisks
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleDisksWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDisksDirectory
        /// </summary>
        /// <remarks>
        /// PVE Managed Directory storages.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksDirectory200Response</returns>
        GetNodesSingleDisksDirectory200Response GetNodesSingleDisksDirectory(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDisksDirectory
        /// </summary>
        /// <remarks>
        /// PVE Managed Directory storages.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksDirectory200Response</returns>
        ApiResponse<GetNodesSingleDisksDirectory200Response> GetNodesSingleDisksDirectoryWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDisksList
        /// </summary>
        /// <remarks>
        /// List local disks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksList200Response</returns>
        GetNodesSingleDisksList200Response GetNodesSingleDisksList(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDisksList
        /// </summary>
        /// <remarks>
        /// List local disks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksList200Response</returns>
        ApiResponse<GetNodesSingleDisksList200Response> GetNodesSingleDisksListWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDisksLvm
        /// </summary>
        /// <remarks>
        /// List LVM Volume Groups
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksLvm200Response</returns>
        GetNodesSingleDisksLvm200Response GetNodesSingleDisksLvm(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDisksLvm
        /// </summary>
        /// <remarks>
        /// List LVM Volume Groups
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksLvm200Response</returns>
        ApiResponse<GetNodesSingleDisksLvm200Response> GetNodesSingleDisksLvmWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDisksLvmthin
        /// </summary>
        /// <remarks>
        /// List LVM thinpools
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksLvmthin200Response</returns>
        GetNodesSingleDisksLvmthin200Response GetNodesSingleDisksLvmthin(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDisksLvmthin
        /// </summary>
        /// <remarks>
        /// List LVM thinpools
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksLvmthin200Response</returns>
        ApiResponse<GetNodesSingleDisksLvmthin200Response> GetNodesSingleDisksLvmthinWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDisksSmart
        /// </summary>
        /// <remarks>
        /// Get SMART Health of a disk.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksSmart200Response</returns>
        GetNodesSingleDisksSmart200Response GetNodesSingleDisksSmart(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDisksSmart
        /// </summary>
        /// <remarks>
        /// Get SMART Health of a disk.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksSmart200Response</returns>
        ApiResponse<GetNodesSingleDisksSmart200Response> GetNodesSingleDisksSmartWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDisksZfs
        /// </summary>
        /// <remarks>
        /// List Zpools.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksZfs200Response</returns>
        GetNodesSingleDisksZfs200Response GetNodesSingleDisksZfs(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDisksZfs
        /// </summary>
        /// <remarks>
        /// List Zpools.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksZfs200Response</returns>
        ApiResponse<GetNodesSingleDisksZfs200Response> GetNodesSingleDisksZfsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDisksZfsSingle
        /// </summary>
        /// <remarks>
        /// Get details about a zpool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksZfsSingle200Response</returns>
        GetNodesSingleDisksZfsSingle200Response GetNodesSingleDisksZfsSingle(string name, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDisksZfsSingle
        /// </summary>
        /// <remarks>
        /// Get details about a zpool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksZfsSingle200Response</returns>
        ApiResponse<GetNodesSingleDisksZfsSingle200Response> GetNodesSingleDisksZfsSingleWithHttpInfo(string name, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleDns
        /// </summary>
        /// <remarks>
        /// Read DNS settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDns200Response</returns>
        GetNodesSingleDns200Response GetNodesSingleDns(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleDns
        /// </summary>
        /// <remarks>
        /// Read DNS settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDns200Response</returns>
        ApiResponse<GetNodesSingleDns200Response> GetNodesSingleDnsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleFirewallLog(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleFirewallLogWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleHardware
        /// </summary>
        /// <remarks>
        /// Index of hardware types
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHardware200Response</returns>
        GetNodesSingleHardware200Response GetNodesSingleHardware(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleHardware
        /// </summary>
        /// <remarks>
        /// Index of hardware types
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHardware200Response</returns>
        ApiResponse<GetNodesSingleHardware200Response> GetNodesSingleHardwareWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleHardwarePci
        /// </summary>
        /// <remarks>
        /// List local PCI devices.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHardwarePci200Response</returns>
        GetNodesSingleHardwarePci200Response GetNodesSingleHardwarePci(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleHardwarePci
        /// </summary>
        /// <remarks>
        /// List local PCI devices.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHardwarePci200Response</returns>
        ApiResponse<GetNodesSingleHardwarePci200Response> GetNodesSingleHardwarePciWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleHardwarePciSingle
        /// </summary>
        /// <remarks>
        /// Index of available pci methods
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScan200Response</returns>
        GetNodesSingleScan200Response GetNodesSingleHardwarePciSingle(string node, string pciIdOrMapping, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleHardwarePciSingle
        /// </summary>
        /// <remarks>
        /// Index of available pci methods
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScan200Response</returns>
        ApiResponse<GetNodesSingleScan200Response> GetNodesSingleHardwarePciSingleWithHttpInfo(string node, string pciIdOrMapping, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleHardwarePciSingleMdev
        /// </summary>
        /// <remarks>
        /// List mediated device types for given PCI device.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHardwarePciSingleMdev200Response</returns>
        GetNodesSingleHardwarePciSingleMdev200Response GetNodesSingleHardwarePciSingleMdev(string node, string pciIdOrMapping, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleHardwarePciSingleMdev
        /// </summary>
        /// <remarks>
        /// List mediated device types for given PCI device.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHardwarePciSingleMdev200Response</returns>
        ApiResponse<GetNodesSingleHardwarePciSingleMdev200Response> GetNodesSingleHardwarePciSingleMdevWithHttpInfo(string node, string pciIdOrMapping, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleHardwareUsb
        /// </summary>
        /// <remarks>
        /// List local USB devices.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHardwareUsb200Response</returns>
        GetNodesSingleHardwareUsb200Response GetNodesSingleHardwareUsb(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleHardwareUsb
        /// </summary>
        /// <remarks>
        /// List local USB devices.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHardwareUsb200Response</returns>
        ApiResponse<GetNodesSingleHardwareUsb200Response> GetNodesSingleHardwareUsbWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleHosts
        /// </summary>
        /// <remarks>
        /// Get the content of /etc/hosts.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHosts200Response</returns>
        GetNodesSingleHosts200Response GetNodesSingleHosts(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleHosts
        /// </summary>
        /// <remarks>
        /// Get the content of /etc/hosts.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHosts200Response</returns>
        ApiResponse<GetNodesSingleHosts200Response> GetNodesSingleHostsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleJournal
        /// </summary>
        /// <remarks>
        /// Read Journal
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleJournal200Response</returns>
        GetNodesSingleJournal200Response GetNodesSingleJournal(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleJournal
        /// </summary>
        /// <remarks>
        /// Read Journal
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleJournal200Response</returns>
        ApiResponse<GetNodesSingleJournal200Response> GetNodesSingleJournalWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxc
        /// </summary>
        /// <remarks>
        /// LXC container index (per node).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxc200Response</returns>
        GetNodesSingleLxc200Response GetNodesSingleLxc(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxc
        /// </summary>
        /// <remarks>
        /// LXC container index (per node).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxc200Response</returns>
        ApiResponse<GetNodesSingleLxc200Response> GetNodesSingleLxcWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingle
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetNodesSingleLxcSingle(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingle
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleLxcSingleWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleConfig
        /// </summary>
        /// <remarks>
        /// Get container configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleConfig200Response</returns>
        GetNodesSingleLxcSingleConfig200Response GetNodesSingleLxcSingleConfig(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleConfig
        /// </summary>
        /// <remarks>
        /// Get container configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleConfig200Response</returns>
        ApiResponse<GetNodesSingleLxcSingleConfig200Response> GetNodesSingleLxcSingleConfigWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFeature
        /// </summary>
        /// <remarks>
        /// Check if feature for virtual machine is available.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleFeature200Response</returns>
        GetNodesSingleLxcSingleFeature200Response GetNodesSingleLxcSingleFeature(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFeature
        /// </summary>
        /// <remarks>
        /// Check if feature for virtual machine is available.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleFeature200Response</returns>
        ApiResponse<GetNodesSingleLxcSingleFeature200Response> GetNodesSingleLxcSingleFeatureWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleLxcSingleFirewall(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleLxcSingleFirewallWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallAliases200Response</returns>
        GetClusterFirewallAliases200Response GetNodesSingleLxcSingleFirewallAliases(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallAliases200Response</returns>
        ApiResponse<GetClusterFirewallAliases200Response> GetNodesSingleLxcSingleFirewallAliasesWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetNodesSingleLxcSingleFirewallAliasesSingle(string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpset
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSets200Response</returns>
        GetClusterFirewallIPSets200Response GetNodesSingleLxcSingleFirewallIpset(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpset
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSets200Response</returns>
        ApiResponse<GetClusterFirewallIPSets200Response> GetNodesSingleLxcSingleFirewallIpsetWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSet200Response</returns>
        GetClusterFirewallIPSet200Response GetNodesSingleLxcSingleFirewallIpsetSingle(string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSet200Response</returns>
        ApiResponse<GetClusterFirewallIPSet200Response> GetNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetNodesSingleLxcSingleFirewallIpsetSingleSingle(string cidr, string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(string cidr, string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleLxcSingleFirewallLog(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleLxcSingleFirewallLogWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get VM firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMFirewallOptions200Response</returns>
        GetVMFirewallOptions200Response GetNodesSingleLxcSingleFirewallOptions(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get VM firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMFirewallOptions200Response</returns>
        ApiResponse<GetVMFirewallOptions200Response> GetNodesSingleLxcSingleFirewallOptionsWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallRefs200Response</returns>
        GetClusterFirewallRefs200Response GetNodesSingleLxcSingleFirewallRefs(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallRefs200Response</returns>
        ApiResponse<GetClusterFirewallRefs200Response> GetNodesSingleLxcSingleFirewallRefsWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        GetClusterFirewallGroupRules200Response GetNodesSingleLxcSingleFirewallRules(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        ApiResponse<GetClusterFirewallGroupRules200Response> GetNodesSingleLxcSingleFirewallRulesWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        GetClusterFirewallGroupRule200Response GetNodesSingleLxcSingleFirewallRulesSingle(string node, int pos, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        ApiResponse<GetClusterFirewallGroupRule200Response> GetNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(string node, int pos, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleInterfaces
        /// </summary>
        /// <remarks>
        /// Get IP addresses of the specified container interface.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleInterfaces200Response</returns>
        GetNodesSingleLxcSingleInterfaces200Response GetNodesSingleLxcSingleInterfaces(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleInterfaces
        /// </summary>
        /// <remarks>
        /// Get IP addresses of the specified container interface.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleInterfaces200Response</returns>
        ApiResponse<GetNodesSingleLxcSingleInterfaces200Response> GetNodesSingleLxcSingleInterfacesWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleMigrate
        /// </summary>
        /// <remarks>
        /// Get preconditions for migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleMigrate200Response</returns>
        GetNodesSingleLxcSingleMigrate200Response GetNodesSingleLxcSingleMigrate(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleMigrate
        /// </summary>
        /// <remarks>
        /// Get preconditions for migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleMigrate200Response</returns>
        ApiResponse<GetNodesSingleLxcSingleMigrate200Response> GetNodesSingleLxcSingleMigrateWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleMtunnelwebsocket
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        GetNodesSingleQemuSingleMtunnelwebsocket200Response GetNodesSingleLxcSingleMtunnelwebsocket(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleMtunnelwebsocket
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response> GetNodesSingleLxcSingleMtunnelwebsocketWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSinglePending
        /// </summary>
        /// <remarks>
        /// Get container configuration, including pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSinglePending200Response</returns>
        GetNodesSingleLxcSinglePending200Response GetNodesSingleLxcSinglePending(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSinglePending
        /// </summary>
        /// <remarks>
        /// Get container configuration, including pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSinglePending200Response</returns>
        ApiResponse<GetNodesSingleLxcSinglePending200Response> GetNodesSingleLxcSinglePendingWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleRrd
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMRRD200Response</returns>
        GetVMRRD200Response GetNodesSingleLxcSingleRrd(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleRrd
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMRRD200Response</returns>
        ApiResponse<GetVMRRD200Response> GetNodesSingleLxcSingleRrdWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleRrddata
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleLxcSingleRrddata(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleRrddata
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleLxcSingleRrddataWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleSnapshot
        /// </summary>
        /// <remarks>
        /// List all snapshots.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleSnapshot200Response</returns>
        GetNodesSingleLxcSingleSnapshot200Response GetNodesSingleLxcSingleSnapshot(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleSnapshot
        /// </summary>
        /// <remarks>
        /// List all snapshots.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleSnapshot200Response</returns>
        ApiResponse<GetNodesSingleLxcSingleSnapshot200Response> GetNodesSingleLxcSingleSnapshotWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleLxcSingleSnapshotSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleLxcSingleSnapshotSingle(string node, string snapname, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleLxcSingleSnapshotSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleLxcSingleSnapshotSingleWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingleConfig
        /// </summary>
        /// <remarks>
        /// Get snapshot configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetNodesSingleLxcSingleSnapshotSingleConfig(string node, string snapname, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingleConfig
        /// </summary>
        /// <remarks>
        /// Get snapshot configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleStatus
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetNodesSingleLxcSingleStatus(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleStatus
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleLxcSingleStatusWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleStatusCurrent
        /// </summary>
        /// <remarks>
        /// Get virtual machine status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleStatusCurrent200Response</returns>
        GetNodesSingleLxcSingleStatusCurrent200Response GetNodesSingleLxcSingleStatusCurrent(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleStatusCurrent
        /// </summary>
        /// <remarks>
        /// Get virtual machine status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleStatusCurrent200Response</returns>
        ApiResponse<GetNodesSingleLxcSingleStatusCurrent200Response> GetNodesSingleLxcSingleStatusCurrentWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleLxcSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        GetNodesSingleQemuSingleVncwebsocket200Response GetNodesSingleLxcSingleVncwebsocket(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleLxcSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleLxcSingleVncwebsocketWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleNetstat
        /// </summary>
        /// <remarks>
        /// Read tap/vm network device interface counters
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleNetstat(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleNetstat
        /// </summary>
        /// <remarks>
        /// Read tap/vm network device interface counters
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleNetstatWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// List available networks
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleNetwork200Response</returns>
        GetNodesSingleNetwork200Response GetNodesSingleNetwork(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// List available networks
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleNetwork200Response</returns>
        ApiResponse<GetNodesSingleNetwork200Response> GetNodesSingleNetworkWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Read network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleNetworkSingle200Response</returns>
        GetNodesSingleNetworkSingle200Response GetNodesSingleNetworkSingle(string iface, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Read network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleNetworkSingle200Response</returns>
        ApiResponse<GetNodesSingleNetworkSingle200Response> GetNodesSingleNetworkSingleWithHttpInfo(string iface, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgent
        /// </summary>
        /// <remarks>
        /// QEMU Guest Agent command index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleAgent200Response</returns>
        GetNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgent(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgent
        /// </summary>
        /// <remarks>
        /// QEMU Guest Agent command index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentExecstatus
        /// </summary>
        /// <remarks>
        /// Gets the status of the given pid started by the guest-agent
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleAgentExecstatus200Response</returns>
        GetNodesSingleQemuSingleAgentExecstatus200Response GetNodesSingleQemuSingleAgentExecstatus(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentExecstatus
        /// </summary>
        /// <remarks>
        /// Gets the status of the given pid started by the guest-agent
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleAgentExecstatus200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleAgentExecstatus200Response> GetNodesSingleQemuSingleAgentExecstatusWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentFileread
        /// </summary>
        /// <remarks>
        /// Reads the given file via guest agent. Is limited to 16777216 bytes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleAgentFileread200Response</returns>
        GetNodesSingleQemuSingleAgentFileread200Response GetNodesSingleQemuSingleAgentFileread(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentFileread
        /// </summary>
        /// <remarks>
        /// Reads the given file via guest agent. Is limited to 16777216 bytes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleAgentFileread200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleAgentFileread200Response> GetNodesSingleQemuSingleAgentFilereadWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetfsinfo
        /// </summary>
        /// <remarks>
        /// Execute get-fsinfo.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetfsinfo(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetfsinfo
        /// </summary>
        /// <remarks>
        /// Execute get-fsinfo.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetfsinfoWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGethostname
        /// </summary>
        /// <remarks>
        /// Execute get-host-name.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGethostname(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGethostname
        /// </summary>
        /// <remarks>
        /// Execute get-host-name.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGethostnameWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblockinfo
        /// </summary>
        /// <remarks>
        /// Execute get-memory-block-info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetmemoryblockinfo(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblockinfo
        /// </summary>
        /// <remarks>
        /// Execute get-memory-block-info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetmemoryblockinfoWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblocks
        /// </summary>
        /// <remarks>
        /// Execute get-memory-blocks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetmemoryblocks(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblocks
        /// </summary>
        /// <remarks>
        /// Execute get-memory-blocks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetmemoryblocksWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetosinfo
        /// </summary>
        /// <remarks>
        /// Execute get-osinfo.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetosinfo(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetosinfo
        /// </summary>
        /// <remarks>
        /// Execute get-osinfo.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetosinfoWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGettime
        /// </summary>
        /// <remarks>
        /// Execute get-time.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGettime(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettime
        /// </summary>
        /// <remarks>
        /// Execute get-time.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGettimeWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGettimezone
        /// </summary>
        /// <remarks>
        /// Execute get-timezone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGettimezone(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettimezone
        /// </summary>
        /// <remarks>
        /// Execute get-timezone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGettimezoneWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetusers
        /// </summary>
        /// <remarks>
        /// Execute get-users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetusers(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetusers
        /// </summary>
        /// <remarks>
        /// Execute get-users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetusersWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetvcpus
        /// </summary>
        /// <remarks>
        /// Execute get-vcpus.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetvcpus(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetvcpus
        /// </summary>
        /// <remarks>
        /// Execute get-vcpus.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetvcpusWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentInfo
        /// </summary>
        /// <remarks>
        /// Execute info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentInfo(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentInfo
        /// </summary>
        /// <remarks>
        /// Execute info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentInfoWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleAgentNetworkgetinterfaces
        /// </summary>
        /// <remarks>
        /// Execute network-get-interfaces.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentNetworkgetinterfaces(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleAgentNetworkgetinterfaces
        /// </summary>
        /// <remarks>
        /// Execute network-get-interfaces.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentNetworkgetinterfacesWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleCloudinit
        /// </summary>
        /// <remarks>
        /// Get the cloudinit configuration with both current and pending values.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleCloudinit200Response</returns>
        GetNodesSingleQemuSingleCloudinit200Response GetNodesSingleQemuSingleCloudinit(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleCloudinit
        /// </summary>
        /// <remarks>
        /// Get the cloudinit configuration with both current and pending values.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleCloudinit200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleCloudinit200Response> GetNodesSingleQemuSingleCloudinitWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleCloudinitDump
        /// </summary>
        /// <remarks>
        /// Get automatically generated cloudinit config.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetNodesSingleQemuSingleCloudinitDump(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleCloudinitDump
        /// </summary>
        /// <remarks>
        /// Get automatically generated cloudinit config.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetNodesSingleQemuSingleCloudinitDumpWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleFeature
        /// </summary>
        /// <remarks>
        /// Check if feature for virtual machine is available.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFeature200Response</returns>
        GetNodesSingleQemuSingleFeature200Response GetNodesSingleQemuSingleFeature(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleFeature
        /// </summary>
        /// <remarks>
        /// Check if feature for virtual machine is available.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFeature200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleFeature200Response> GetNodesSingleQemuSingleFeatureWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallAliases200Response</returns>
        GetClusterFirewallAliases200Response GetNodesSingleQemuSingleFirewallAliases(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallAliases200Response</returns>
        ApiResponse<GetClusterFirewallAliases200Response> GetNodesSingleQemuSingleFirewallAliasesWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetNodesSingleQemuSingleFirewallAliasesSingle(string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleQemuSingleFirewallLog(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleQemuSingleFirewallLogWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallRefs200Response</returns>
        GetClusterFirewallRefs200Response GetNodesSingleQemuSingleFirewallRefs(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallRefs200Response</returns>
        ApiResponse<GetClusterFirewallRefs200Response> GetNodesSingleQemuSingleFirewallRefsWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleMtunnelwebsocket
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        GetNodesSingleQemuSingleMtunnelwebsocket200Response GetNodesSingleQemuSingleMtunnelwebsocket(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleMtunnelwebsocket
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response> GetNodesSingleQemuSingleMtunnelwebsocketWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQemuSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        GetNodesSingleQemuSingleVncwebsocket200Response GetNodesSingleQemuSingleVncwebsocket(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQemuSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleQemuSingleVncwebsocketWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQueryocirepotags
        /// </summary>
        /// <remarks>
        /// List all tags for an OCI repository reference.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleJournal200Response</returns>
        GetNodesSingleJournal200Response GetNodesSingleQueryocirepotags(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQueryocirepotags
        /// </summary>
        /// <remarks>
        /// List all tags for an OCI repository reference.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleJournal200Response</returns>
        ApiResponse<GetNodesSingleJournal200Response> GetNodesSingleQueryocirepotagsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleQueryurlmetadata
        /// </summary>
        /// <remarks>
        /// Query metadata of an URL: file size, file name and mime type.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQueryurlmetadata200Response</returns>
        GetNodesSingleQueryurlmetadata200Response GetNodesSingleQueryurlmetadata(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleQueryurlmetadata
        /// </summary>
        /// <remarks>
        /// Query metadata of an URL: file size, file name and mime type.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQueryurlmetadata200Response</returns>
        ApiResponse<GetNodesSingleQueryurlmetadata200Response> GetNodesSingleQueryurlmetadataWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleReplication
        /// </summary>
        /// <remarks>
        /// List status of all replication jobs on this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHa200Response</returns>
        GetClusterHa200Response GetNodesSingleReplication(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleReplication
        /// </summary>
        /// <remarks>
        /// List status of all replication jobs on this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHa200Response</returns>
        ApiResponse<GetClusterHa200Response> GetNodesSingleReplicationWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleReplicationSingle
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleReplicationSingle(string id, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleReplicationSingle
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleReplicationSingleWithHttpInfo(string id, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleReplicationSingleLog
        /// </summary>
        /// <remarks>
        /// Read replication job log.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleReplicationSingleLog(string id, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleReplicationSingleLog
        /// </summary>
        /// <remarks>
        /// Read replication job log.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleReplicationSingleLogWithHttpInfo(string id, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleReplicationSingleStatus
        /// </summary>
        /// <remarks>
        /// Get replication job status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetNodesSingleReplicationSingleStatus(string id, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleReplicationSingleStatus
        /// </summary>
        /// <remarks>
        /// Get replication job status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleReplicationSingleStatusWithHttpInfo(string id, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleReport
        /// </summary>
        /// <remarks>
        /// Gather various systems information about a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetNodesSingleReport(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleReport
        /// </summary>
        /// <remarks>
        /// Gather various systems information about a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetNodesSingleReportWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleScan
        /// </summary>
        /// <remarks>
        /// Index of available scan methods
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScan200Response</returns>
        GetNodesSingleScan200Response GetNodesSingleScan(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleScan
        /// </summary>
        /// <remarks>
        /// Index of available scan methods
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScan200Response</returns>
        ApiResponse<GetNodesSingleScan200Response> GetNodesSingleScanWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleScanCifs
        /// </summary>
        /// <remarks>
        /// Scan remote CIFS server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanCifs200Response</returns>
        GetNodesSingleScanCifs200Response GetNodesSingleScanCifs(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleScanCifs
        /// </summary>
        /// <remarks>
        /// Scan remote CIFS server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanCifs200Response</returns>
        ApiResponse<GetNodesSingleScanCifs200Response> GetNodesSingleScanCifsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleScanIscsi
        /// </summary>
        /// <remarks>
        /// Scan remote iSCSI server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanIscsi200Response</returns>
        GetNodesSingleScanIscsi200Response GetNodesSingleScanIscsi(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleScanIscsi
        /// </summary>
        /// <remarks>
        /// Scan remote iSCSI server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanIscsi200Response</returns>
        ApiResponse<GetNodesSingleScanIscsi200Response> GetNodesSingleScanIscsiWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleScanLvm
        /// </summary>
        /// <remarks>
        /// List local LVM volume groups.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanLvm200Response</returns>
        GetNodesSingleScanLvm200Response GetNodesSingleScanLvm(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleScanLvm
        /// </summary>
        /// <remarks>
        /// List local LVM volume groups.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanLvm200Response</returns>
        ApiResponse<GetNodesSingleScanLvm200Response> GetNodesSingleScanLvmWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleScanLvmthin
        /// </summary>
        /// <remarks>
        /// List local LVM Thin Pools.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanLvmthin200Response</returns>
        GetNodesSingleScanLvmthin200Response GetNodesSingleScanLvmthin(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleScanLvmthin
        /// </summary>
        /// <remarks>
        /// List local LVM Thin Pools.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanLvmthin200Response</returns>
        ApiResponse<GetNodesSingleScanLvmthin200Response> GetNodesSingleScanLvmthinWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleScanNfs
        /// </summary>
        /// <remarks>
        /// Scan remote NFS server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanNfs200Response</returns>
        GetNodesSingleScanNfs200Response GetNodesSingleScanNfs(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleScanNfs
        /// </summary>
        /// <remarks>
        /// Scan remote NFS server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanNfs200Response</returns>
        ApiResponse<GetNodesSingleScanNfs200Response> GetNodesSingleScanNfsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleScanPbs
        /// </summary>
        /// <remarks>
        /// Scan remote Proxmox Backup Server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanPbs200Response</returns>
        GetNodesSingleScanPbs200Response GetNodesSingleScanPbs(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleScanPbs
        /// </summary>
        /// <remarks>
        /// Scan remote Proxmox Backup Server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanPbs200Response</returns>
        ApiResponse<GetNodesSingleScanPbs200Response> GetNodesSingleScanPbsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleScanZfs
        /// </summary>
        /// <remarks>
        /// Scan zfs pool list on local node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanZfs200Response</returns>
        GetNodesSingleScanZfs200Response GetNodesSingleScanZfs(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleScanZfs
        /// </summary>
        /// <remarks>
        /// Scan zfs pool list on local node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanZfs200Response</returns>
        ApiResponse<GetNodesSingleScanZfs200Response> GetNodesSingleScanZfsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSdnFabricsSingle
        /// </summary>
        /// <remarks>
        /// Directory index for SDN fabric status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetNodesSingleSdnFabricsSingle(string fabric, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSdnFabricsSingle
        /// </summary>
        /// <remarks>
        /// Directory index for SDN fabric status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleSdnFabricsSingleWithHttpInfo(string fabric, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSdnFabricsSingleInterfaces
        /// </summary>
        /// <remarks>
        /// Get all interfaces for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnFabricsSingleInterfaces200Response</returns>
        GetNodesSingleSdnFabricsSingleInterfaces200Response GetNodesSingleSdnFabricsSingleInterfaces(string fabric, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSdnFabricsSingleInterfaces
        /// </summary>
        /// <remarks>
        /// Get all interfaces for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnFabricsSingleInterfaces200Response</returns>
        ApiResponse<GetNodesSingleSdnFabricsSingleInterfaces200Response> GetNodesSingleSdnFabricsSingleInterfacesWithHttpInfo(string fabric, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSdnFabricsSingleNeighbors
        /// </summary>
        /// <remarks>
        /// Get all neighbors for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnFabricsSingleNeighbors200Response</returns>
        GetNodesSingleSdnFabricsSingleNeighbors200Response GetNodesSingleSdnFabricsSingleNeighbors(string fabric, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSdnFabricsSingleNeighbors
        /// </summary>
        /// <remarks>
        /// Get all neighbors for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnFabricsSingleNeighbors200Response</returns>
        ApiResponse<GetNodesSingleSdnFabricsSingleNeighbors200Response> GetNodesSingleSdnFabricsSingleNeighborsWithHttpInfo(string fabric, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSdnFabricsSingleRoutes
        /// </summary>
        /// <remarks>
        /// Get all routes for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnFabricsSingleRoutes200Response</returns>
        GetNodesSingleSdnFabricsSingleRoutes200Response GetNodesSingleSdnFabricsSingleRoutes(string fabric, string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSdnFabricsSingleRoutes
        /// </summary>
        /// <remarks>
        /// Get all routes for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnFabricsSingleRoutes200Response</returns>
        ApiResponse<GetNodesSingleSdnFabricsSingleRoutes200Response> GetNodesSingleSdnFabricsSingleRoutesWithHttpInfo(string fabric, string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSdnVnetsSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleSdnVnetsSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetNodesSingleSdnVnetsSingle(string node, string vnet, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSdnVnetsSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleSdnVnetsSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleSdnVnetsSingleWithHttpInfo(string node, string vnet, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSdnVnetsSingleMacvrf
        /// </summary>
        /// <remarks>
        /// Get the MAC VRF for a VNet in an EVPN zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnVnetsSingleMacvrf200Response</returns>
        GetNodesSingleSdnVnetsSingleMacvrf200Response GetNodesSingleSdnVnetsSingleMacvrf(string node, string vnet, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSdnVnetsSingleMacvrf
        /// </summary>
        /// <remarks>
        /// Get the MAC VRF for a VNet in an EVPN zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnVnetsSingleMacvrf200Response</returns>
        ApiResponse<GetNodesSingleSdnVnetsSingleMacvrf200Response> GetNodesSingleSdnVnetsSingleMacvrfWithHttpInfo(string node, string vnet, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSdnZonesSingleBridges
        /// </summary>
        /// <remarks>
        /// Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnZonesSingleBridges200Response</returns>
        GetNodesSingleSdnZonesSingleBridges200Response GetNodesSingleSdnZonesSingleBridges(string node, string zone, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSdnZonesSingleBridges
        /// </summary>
        /// <remarks>
        /// Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnZonesSingleBridges200Response</returns>
        ApiResponse<GetNodesSingleSdnZonesSingleBridges200Response> GetNodesSingleSdnZonesSingleBridgesWithHttpInfo(string node, string zone, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSdnZonesSingleIpvrf
        /// </summary>
        /// <remarks>
        /// Get the IP VRF of an EVPN zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnZonesSingleIpvrf200Response</returns>
        GetNodesSingleSdnZonesSingleIpvrf200Response GetNodesSingleSdnZonesSingleIpvrf(string node, string zone, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSdnZonesSingleIpvrf
        /// </summary>
        /// <remarks>
        /// Get the IP VRF of an EVPN zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnZonesSingleIpvrf200Response</returns>
        ApiResponse<GetNodesSingleSdnZonesSingleIpvrf200Response> GetNodesSingleSdnZonesSingleIpvrfWithHttpInfo(string node, string zone, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleServices
        /// </summary>
        /// <remarks>
        /// Service list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleServices200Response</returns>
        GetNodesSingleServices200Response GetNodesSingleServices(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleServices
        /// </summary>
        /// <remarks>
        /// Service list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleServices200Response</returns>
        ApiResponse<GetNodesSingleServices200Response> GetNodesSingleServicesWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleServicesSingle
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetNodesSingleServicesSingle(string node, string service, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleServicesSingle
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleServicesSingleWithHttpInfo(string node, string service, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleServicesSingleState
        /// </summary>
        /// <remarks>
        /// Read service properties
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleServicesSingleState200Response</returns>
        GetNodesSingleServicesSingleState200Response GetNodesSingleServicesSingleState(string node, string service, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleServicesSingleState
        /// </summary>
        /// <remarks>
        /// Read service properties
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleServicesSingleState200Response</returns>
        ApiResponse<GetNodesSingleServicesSingleState200Response> GetNodesSingleServicesSingleStateWithHttpInfo(string node, string service, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStatus
        /// </summary>
        /// <remarks>
        /// Read node status
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStatus200Response</returns>
        GetNodesSingleStatus200Response GetNodesSingleStatus(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStatus
        /// </summary>
        /// <remarks>
        /// Read node status
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStatus200Response</returns>
        ApiResponse<GetNodesSingleStatus200Response> GetNodesSingleStatusWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorage
        /// </summary>
        /// <remarks>
        /// Get status for all datastores.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorage200Response</returns>
        GetNodesSingleStorage200Response GetNodesSingleStorage(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorage
        /// </summary>
        /// <remarks>
        /// Get status for all datastores.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorage200Response</returns>
        ApiResponse<GetNodesSingleStorage200Response> GetNodesSingleStorageWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleStorageSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetNodesSingleStorageSingle(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleStorageSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleStorageSingleWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingleContent
        /// </summary>
        /// <remarks>
        /// List storage content.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleContent200Response</returns>
        GetNodesSingleStorageSingleContent200Response GetNodesSingleStorageSingleContent(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingleContent
        /// </summary>
        /// <remarks>
        /// List storage content.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleContent200Response</returns>
        ApiResponse<GetNodesSingleStorageSingleContent200Response> GetNodesSingleStorageSingleContentWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Get volume attributes
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleContentSingle200Response</returns>
        GetNodesSingleStorageSingleContentSingle200Response GetNodesSingleStorageSingleContentSingle(string node, string storage, string volume, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Get volume attributes
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleContentSingle200Response</returns>
        ApiResponse<GetNodesSingleStorageSingleContentSingle200Response> GetNodesSingleStorageSingleContentSingleWithHttpInfo(string node, string storage, string volume, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreDownload
        /// </summary>
        /// <remarks>
        /// Extract a file or directory (as zip archive) from a PBS backup.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleFilerestoreDownload200Response</returns>
        GetNodesSingleStorageSingleFilerestoreDownload200Response GetNodesSingleStorageSingleFilerestoreDownload(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreDownload
        /// </summary>
        /// <remarks>
        /// Extract a file or directory (as zip archive) from a PBS backup.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleFilerestoreDownload200Response</returns>
        ApiResponse<GetNodesSingleStorageSingleFilerestoreDownload200Response> GetNodesSingleStorageSingleFilerestoreDownloadWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreList
        /// </summary>
        /// <remarks>
        /// List files and directories for single file restore under the given path.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleFilerestoreList200Response</returns>
        GetNodesSingleStorageSingleFilerestoreList200Response GetNodesSingleStorageSingleFilerestoreList(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreList
        /// </summary>
        /// <remarks>
        /// List files and directories for single file restore under the given path.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleFilerestoreList200Response</returns>
        ApiResponse<GetNodesSingleStorageSingleFilerestoreList200Response> GetNodesSingleStorageSingleFilerestoreListWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingleImportmetadata
        /// </summary>
        /// <remarks>
        /// Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleImportmetadata200Response</returns>
        GetNodesSingleStorageSingleImportmetadata200Response GetNodesSingleStorageSingleImportmetadata(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingleImportmetadata
        /// </summary>
        /// <remarks>
        /// Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleImportmetadata200Response</returns>
        ApiResponse<GetNodesSingleStorageSingleImportmetadata200Response> GetNodesSingleStorageSingleImportmetadataWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSinglePrunebackups
        /// </summary>
        /// <remarks>
        /// Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSinglePrunebackups200Response</returns>
        GetNodesSingleStorageSinglePrunebackups200Response GetNodesSingleStorageSinglePrunebackups(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSinglePrunebackups
        /// </summary>
        /// <remarks>
        /// Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSinglePrunebackups200Response</returns>
        ApiResponse<GetNodesSingleStorageSinglePrunebackups200Response> GetNodesSingleStorageSinglePrunebackupsWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingleRrd
        /// </summary>
        /// <remarks>
        /// Read storage RRD statistics (returns PNG).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMRRD200Response</returns>
        GetVMRRD200Response GetNodesSingleStorageSingleRrd(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingleRrd
        /// </summary>
        /// <remarks>
        /// Read storage RRD statistics (returns PNG).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMRRD200Response</returns>
        ApiResponse<GetVMRRD200Response> GetNodesSingleStorageSingleRrdWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingleRrddata
        /// </summary>
        /// <remarks>
        /// Read storage RRD statistics.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetNodesSingleStorageSingleRrddata(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingleRrddata
        /// </summary>
        /// <remarks>
        /// Read storage RRD statistics.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetNodesSingleStorageSingleRrddataWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleStorageSingleStatus
        /// </summary>
        /// <remarks>
        /// Read storage status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleStatus200Response</returns>
        GetNodesSingleStorageSingleStatus200Response GetNodesSingleStorageSingleStatus(string node, string storage, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleStorageSingleStatus
        /// </summary>
        /// <remarks>
        /// Read storage status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleStatus200Response</returns>
        ApiResponse<GetNodesSingleStorageSingleStatus200Response> GetNodesSingleStorageSingleStatusWithHttpInfo(string node, string storage, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Read subscription info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSubscription200Response</returns>
        GetNodesSingleSubscription200Response GetNodesSingleSubscription(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Read subscription info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSubscription200Response</returns>
        ApiResponse<GetNodesSingleSubscription200Response> GetNodesSingleSubscriptionWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleSyslog
        /// </summary>
        /// <remarks>
        /// Read system log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleSyslog(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleSyslog
        /// </summary>
        /// <remarks>
        /// Read system log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleSyslogWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleTime
        /// </summary>
        /// <remarks>
        /// Read server time and time zone settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleTime200Response</returns>
        GetNodesSingleTime200Response GetNodesSingleTime(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleTime
        /// </summary>
        /// <remarks>
        /// Read server time and time zone settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleTime200Response</returns>
        ApiResponse<GetNodesSingleTime200Response> GetNodesSingleTimeWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleVersion
        /// </summary>
        /// <remarks>
        /// API version details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleVersion200Response</returns>
        GetNodesSingleVersion200Response GetNodesSingleVersion(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleVersion
        /// </summary>
        /// <remarks>
        /// API version details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleVersion200Response</returns>
        ApiResponse<GetNodesSingleVersion200Response> GetNodesSingleVersionWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        GetNodesSingleQemuSingleVncwebsocket200Response GetNodesSingleVncwebsocket(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleVncwebsocketWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleVzdumpDefaults
        /// </summary>
        /// <remarks>
        /// Get the currently configured vzdump defaults.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleVzdumpDefaults200Response</returns>
        GetNodesSingleVzdumpDefaults200Response GetNodesSingleVzdumpDefaults(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleVzdumpDefaults
        /// </summary>
        /// <remarks>
        /// Get the currently configured vzdump defaults.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleVzdumpDefaults200Response</returns>
        ApiResponse<GetNodesSingleVzdumpDefaults200Response> GetNodesSingleVzdumpDefaultsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getNodesSingleVzdumpExtractconfig
        /// </summary>
        /// <remarks>
        /// Extract configuration from vzdump backup archive.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response GetNodesSingleVzdumpExtractconfig(string node, int operationIndex = 0);

        /// <summary>
        /// getNodesSingleVzdumpExtractconfig
        /// </summary>
        /// <remarks>
        /// Extract configuration from vzdump backup archive.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> GetNodesSingleVzdumpExtractconfigWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getPool
        /// </summary>
        /// <remarks>
        /// Get pool configuration (deprecated, no support for nested pools, use &#39;GET /pools/?poolid&#x3D;{poolid}&#39;).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetPool200Response</returns>
        GetPool200Response GetPool(string poolid, int operationIndex = 0);

        /// <summary>
        /// getPool
        /// </summary>
        /// <remarks>
        /// Get pool configuration (deprecated, no support for nested pools, use &#39;GET /pools/?poolid&#x3D;{poolid}&#39;).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetPool200Response</returns>
        ApiResponse<GetPool200Response> GetPoolWithHttpInfo(string poolid, int operationIndex = 0);
        /// <summary>
        /// getPools
        /// </summary>
        /// <remarks>
        /// List pools or get pool configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetPools200Response</returns>
        GetPools200Response GetPools(int operationIndex = 0);

        /// <summary>
        /// getPools
        /// </summary>
        /// <remarks>
        /// List pools or get pool configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetPools200Response</returns>
        ApiResponse<GetPools200Response> GetPoolsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getStorage
        /// </summary>
        /// <remarks>
        /// Storage index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetStorage200Response</returns>
        GetStorage200Response GetStorage(int operationIndex = 0);

        /// <summary>
        /// getStorage
        /// </summary>
        /// <remarks>
        /// Storage index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetStorage200Response</returns>
        ApiResponse<GetStorage200Response> GetStorageWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// getStorageSingle
        /// </summary>
        /// <remarks>
        /// Read storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetStorageSingle(string storage, int operationIndex = 0);

        /// <summary>
        /// getStorageSingle
        /// </summary>
        /// <remarks>
        /// Read storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetStorageSingleWithHttpInfo(string storage, int operationIndex = 0);
        /// <summary>
        /// getVM
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetVM(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVM
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetVMWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMConfig
        /// </summary>
        /// <remarks>
        /// Get the virtual machine configuration with pending configuration changes applied. Set the &#39;current&#39; parameter to get the current configuration instead.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMConfig200Response</returns>
        GetVMConfig200Response GetVMConfig(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMConfig
        /// </summary>
        /// <remarks>
        /// Get the virtual machine configuration with pending configuration changes applied. Set the &#39;current&#39; parameter to get the current configuration instead.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMConfig200Response</returns>
        ApiResponse<GetVMConfig200Response> GetVMConfigWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMConfigPending
        /// </summary>
        /// <remarks>
        /// Get the virtual machine configuration with both current and pending values.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMConfigPending200Response</returns>
        GetVMConfigPending200Response GetVMConfigPending(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMConfigPending
        /// </summary>
        /// <remarks>
        /// Get the virtual machine configuration with both current and pending values.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMConfigPending200Response</returns>
        ApiResponse<GetVMConfigPending200Response> GetVMConfigPendingWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetVMFirewall(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetVMFirewallWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSet200Response</returns>
        GetClusterFirewallIPSet200Response GetVMFirewallIPSet(string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSet200Response</returns>
        ApiResponse<GetClusterFirewallIPSet200Response> GetVMFirewallIPSetWithHttpInfo(string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetVMFirewallIPSetIP(string cidr, string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetVMFirewallIPSetIPWithHttpInfo(string cidr, string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMFirewallIPSets
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSets200Response</returns>
        GetClusterFirewallIPSets200Response GetVMFirewallIPSets(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMFirewallIPSets
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSets200Response</returns>
        ApiResponse<GetClusterFirewallIPSets200Response> GetVMFirewallIPSetsWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get VM firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMFirewallOptions200Response</returns>
        GetVMFirewallOptions200Response GetVMFirewallOptions(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get VM firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMFirewallOptions200Response</returns>
        ApiResponse<GetVMFirewallOptions200Response> GetVMFirewallOptionsWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        GetClusterFirewallGroupRule200Response GetVMFirewallRule(string node, int pos, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        ApiResponse<GetClusterFirewallGroupRule200Response> GetVMFirewallRuleWithHttpInfo(string node, int pos, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        GetClusterFirewallGroupRules200Response GetVMFirewallRules(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        ApiResponse<GetClusterFirewallGroupRules200Response> GetVMFirewallRulesWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMRRD
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMRRD200Response</returns>
        GetVMRRD200Response GetVMRRD(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMRRD
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMRRD200Response</returns>
        ApiResponse<GetVMRRD200Response> GetVMRRDWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMRRDData
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetVMRRDData(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMRRDData
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetVMRRDDataWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMSnapshot
        /// </summary>
        /// <remarks>
        /// getVMSnapshot
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        GetCluster200Response GetVMSnapshot(string node, string snapname, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMSnapshot
        /// </summary>
        /// <remarks>
        /// getVMSnapshot
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        ApiResponse<GetCluster200Response> GetVMSnapshotWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMSnapshotConfig
        /// </summary>
        /// <remarks>
        /// Get snapshot configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        GetClusterMetricsServerSingle200Response GetVMSnapshotConfig(string node, string snapname, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMSnapshotConfig
        /// </summary>
        /// <remarks>
        /// Get snapshot configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        ApiResponse<GetClusterMetricsServerSingle200Response> GetVMSnapshotConfigWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMSnapshots
        /// </summary>
        /// <remarks>
        /// List all snapshots.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMSnapshots200Response</returns>
        GetVMSnapshots200Response GetVMSnapshots(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMSnapshots
        /// </summary>
        /// <remarks>
        /// List all snapshots.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMSnapshots200Response</returns>
        ApiResponse<GetVMSnapshots200Response> GetVMSnapshotsWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMStatus
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        GetClusterSdnFabrics200Response GetVMStatus(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// getVMStatus
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        ApiResponse<GetClusterSdnFabrics200Response> GetVMStatusWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// getVMs
        /// </summary>
        /// <remarks>
        /// Virtual machine index (per node).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMs200Response</returns>
        GetVMs200Response GetVMs(string node, int operationIndex = 0);

        /// <summary>
        /// getVMs
        /// </summary>
        /// <remarks>
        /// Virtual machine index (per node).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMs200Response</returns>
        ApiResponse<GetVMs200Response> GetVMsWithHttpInfo(string node, int operationIndex = 0);
        /// <summary>
        /// getVersion
        /// </summary>
        /// <remarks>
        /// API version details, including some parts of the global datacenter config.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVersion200Response</returns>
        GetVersion200Response GetVersion(int operationIndex = 0);

        /// <summary>
        /// getVersion
        /// </summary>
        /// <remarks>
        /// API version details, including some parts of the global datacenter config.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVersion200Response</returns>
        ApiResponse<GetVersion200Response> GetVersionWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// migrateVM
        /// </summary>
        /// <remarks>
        /// Get preconditions for migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>MigrateVM200Response</returns>
        MigrateVM200Response MigrateVM(string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// migrateVM
        /// </summary>
        /// <remarks>
        /// Get preconditions for migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of MigrateVM200Response</returns>
        ApiResponse<MigrateVM200Response> MigrateVMWithHttpInfo(string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// rebootVM
        /// </summary>
        /// <remarks>
        /// Reboot the VM by shutting it down, and starting it again. Applies pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rebootVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response RebootVM(string node, int vmid, RebootVMRequest rebootVMRequest = default(RebootVMRequest), int operationIndex = 0);

        /// <summary>
        /// rebootVM
        /// </summary>
        /// <remarks>
        /// Reboot the VM by shutting it down, and starting it again. Applies pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rebootVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> RebootVMWithHttpInfo(string node, int vmid, RebootVMRequest rebootVMRequest = default(RebootVMRequest), int operationIndex = 0);
        /// <summary>
        /// removeClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response RemoveClusterFirewallGroupRule(string group, int pos, int operationIndex = 0);

        /// <summary>
        /// removeClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> RemoveClusterFirewallGroupRuleWithHttpInfo(string group, int pos, int operationIndex = 0);
        /// <summary>
        /// removeClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response RemoveClusterFirewallIPSetIP(string cidr, string name, int operationIndex = 0);

        /// <summary>
        /// removeClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> RemoveClusterFirewallIPSetIPWithHttpInfo(string cidr, string name, int operationIndex = 0);
        /// <summary>
        /// removeClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response RemoveClusterFirewallRule(int pos, int operationIndex = 0);

        /// <summary>
        /// removeClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> RemoveClusterFirewallRuleWithHttpInfo(int pos, int operationIndex = 0);
        /// <summary>
        /// removeVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response RemoveVMFirewallIPSetIP(string cidr, string name, string node, int vmid, int operationIndex = 0);

        /// <summary>
        /// removeVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> RemoveVMFirewallIPSetIPWithHttpInfo(string cidr, string name, string node, int vmid, int operationIndex = 0);
        /// <summary>
        /// resetVM
        /// </summary>
        /// <remarks>
        /// Reset virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resetVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response ResetVM(string node, int vmid, ResetVMRequest resetVMRequest = default(ResetVMRequest), int operationIndex = 0);

        /// <summary>
        /// resetVM
        /// </summary>
        /// <remarks>
        /// Reset virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resetVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> ResetVMWithHttpInfo(string node, int vmid, ResetVMRequest resetVMRequest = default(ResetVMRequest), int operationIndex = 0);
        /// <summary>
        /// resizeVMDisk
        /// </summary>
        /// <remarks>
        /// Extend volume size.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resizeVMDiskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response ResizeVMDisk(string node, int vmid, ResizeVMDiskRequest resizeVMDiskRequest = default(ResizeVMDiskRequest), int operationIndex = 0);

        /// <summary>
        /// resizeVMDisk
        /// </summary>
        /// <remarks>
        /// Extend volume size.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resizeVMDiskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> ResizeVMDiskWithHttpInfo(string node, int vmid, ResizeVMDiskRequest resizeVMDiskRequest = default(ResizeVMDiskRequest), int operationIndex = 0);
        /// <summary>
        /// resumeVM
        /// </summary>
        /// <remarks>
        /// Resume virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resumeVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response ResumeVM(string node, int vmid, ResumeVMRequest resumeVMRequest = default(ResumeVMRequest), int operationIndex = 0);

        /// <summary>
        /// resumeVM
        /// </summary>
        /// <remarks>
        /// Resume virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resumeVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> ResumeVMWithHttpInfo(string node, int vmid, ResumeVMRequest resumeVMRequest = default(ResumeVMRequest), int operationIndex = 0);
        /// <summary>
        /// rollbackVMSnapshot
        /// </summary>
        /// <remarks>
        /// Rollback VM state to specified snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rollbackVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response RollbackVMSnapshot(string node, string snapname, int vmid, RollbackVMSnapshotRequest rollbackVMSnapshotRequest = default(RollbackVMSnapshotRequest), int operationIndex = 0);

        /// <summary>
        /// rollbackVMSnapshot
        /// </summary>
        /// <remarks>
        /// Rollback VM state to specified snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rollbackVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> RollbackVMSnapshotWithHttpInfo(string node, string snapname, int vmid, RollbackVMSnapshotRequest rollbackVMSnapshotRequest = default(RollbackVMSnapshotRequest), int operationIndex = 0);
        /// <summary>
        /// shutdownVM
        /// </summary>
        /// <remarks>
        /// Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="shutdownVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response ShutdownVM(string node, int vmid, ShutdownVMRequest shutdownVMRequest = default(ShutdownVMRequest), int operationIndex = 0);

        /// <summary>
        /// shutdownVM
        /// </summary>
        /// <remarks>
        /// Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="shutdownVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> ShutdownVMWithHttpInfo(string node, int vmid, ShutdownVMRequest shutdownVMRequest = default(ShutdownVMRequest), int operationIndex = 0);
        /// <summary>
        /// startVM
        /// </summary>
        /// <remarks>
        /// Start virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="startVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response StartVM(string node, int vmid, StartVMRequest startVMRequest = default(StartVMRequest), int operationIndex = 0);

        /// <summary>
        /// startVM
        /// </summary>
        /// <remarks>
        /// Start virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="startVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> StartVMWithHttpInfo(string node, int vmid, StartVMRequest startVMRequest = default(StartVMRequest), int operationIndex = 0);
        /// <summary>
        /// stopNodeTask
        /// </summary>
        /// <remarks>
        /// Stop a task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response StopNodeTask(string node, string upid, int operationIndex = 0);

        /// <summary>
        /// stopNodeTask
        /// </summary>
        /// <remarks>
        /// Stop a task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> StopNodeTaskWithHttpInfo(string node, string upid, int operationIndex = 0);
        /// <summary>
        /// stopVM
        /// </summary>
        /// <remarks>
        /// Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="stopVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response StopVM(string node, int vmid, StopVMRequest stopVMRequest = default(StopVMRequest), int operationIndex = 0);

        /// <summary>
        /// stopVM
        /// </summary>
        /// <remarks>
        /// Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="stopVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> StopVMWithHttpInfo(string node, int vmid, StopVMRequest stopVMRequest = default(StopVMRequest), int operationIndex = 0);
        /// <summary>
        /// suspendVM
        /// </summary>
        /// <remarks>
        /// Suspend virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="suspendVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response SuspendVM(string node, int vmid, SuspendVMRequest suspendVMRequest = default(SuspendVMRequest), int operationIndex = 0);

        /// <summary>
        /// suspendVM
        /// </summary>
        /// <remarks>
        /// Suspend virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="suspendVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> SuspendVMWithHttpInfo(string node, int vmid, SuspendVMRequest suspendVMRequest = default(SuspendVMRequest), int operationIndex = 0);
        /// <summary>
        /// unlinkVMDiskImages
        /// </summary>
        /// <remarks>
        /// Unlink/delete disk images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="unlinkVMDiskImagesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UnlinkVMDiskImages(string node, int vmid, UnlinkVMDiskImagesRequest unlinkVMDiskImagesRequest = default(UnlinkVMDiskImagesRequest), int operationIndex = 0);

        /// <summary>
        /// unlinkVMDiskImages
        /// </summary>
        /// <remarks>
        /// Unlink/delete disk images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="unlinkVMDiskImagesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UnlinkVMDiskImagesWithHttpInfo(string node, int vmid, UnlinkVMDiskImagesRequest unlinkVMDiskImagesRequest = default(UnlinkVMDiskImagesRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessAcl
        /// </summary>
        /// <remarks>
        /// Update Access Control List (add or remove permissions).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessAclRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateAccessAcl(UpdateAccessAclRequest updateAccessAclRequest = default(UpdateAccessAclRequest), int operationIndex = 0);

        /// <summary>
        /// updateAccessAcl
        /// </summary>
        /// <remarks>
        /// Update Access Control List (add or remove permissions).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessAclRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateAccessAclWithHttpInfo(UpdateAccessAclRequest updateAccessAclRequest = default(UpdateAccessAclRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Update authentication server settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="updateAccessDomainsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateAccessDomainsSingle(string realm, UpdateAccessDomainsSingleRequest updateAccessDomainsSingleRequest = default(UpdateAccessDomainsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Update authentication server settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="updateAccessDomainsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateAccessDomainsSingleWithHttpInfo(string realm, UpdateAccessDomainsSingleRequest updateAccessDomainsSingleRequest = default(UpdateAccessDomainsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Update group data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="updateAccessGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateAccessGroupsSingle(string groupid, UpdateAccessGroupsSingleRequest updateAccessGroupsSingleRequest = default(UpdateAccessGroupsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Update group data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="updateAccessGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateAccessGroupsSingleWithHttpInfo(string groupid, UpdateAccessGroupsSingleRequest updateAccessGroupsSingleRequest = default(UpdateAccessGroupsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessPassword
        /// </summary>
        /// <remarks>
        /// Change user password.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessPasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateAccessPassword(UpdateAccessPasswordRequest updateAccessPasswordRequest = default(UpdateAccessPasswordRequest), int operationIndex = 0);

        /// <summary>
        /// updateAccessPassword
        /// </summary>
        /// <remarks>
        /// Change user password.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessPasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateAccessPasswordWithHttpInfo(UpdateAccessPasswordRequest updateAccessPasswordRequest = default(UpdateAccessPasswordRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Update an existing role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="updateAccessRolesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateAccessRolesSingle(string roleid, UpdateAccessRolesSingleRequest updateAccessRolesSingleRequest = default(UpdateAccessRolesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Update an existing role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="updateAccessRolesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateAccessRolesSingleWithHttpInfo(string roleid, UpdateAccessRolesSingleRequest updateAccessRolesSingleRequest = default(UpdateAccessRolesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Add a TFA entry for a user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessTfaSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateAccessTfaSingleSingle(string id, string userid, UpdateAccessTfaSingleSingleRequest updateAccessTfaSingleSingleRequest = default(UpdateAccessTfaSingleSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Add a TFA entry for a user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessTfaSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateAccessTfaSingleSingleWithHttpInfo(string id, string userid, UpdateAccessTfaSingleSingleRequest updateAccessTfaSingleSingleRequest = default(UpdateAccessTfaSingleSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Update user configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateAccessUsersSingle(string userid, UpdateAccessUsersSingleRequest updateAccessUsersSingleRequest = default(UpdateAccessUsersSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Update user configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateAccessUsersSingleWithHttpInfo(string userid, UpdateAccessUsersSingleRequest updateAccessUsersSingleRequest = default(UpdateAccessUsersSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Update API token for a specific user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>UpdateAccessUsersSingleTokenSingle200Response</returns>
        UpdateAccessUsersSingleTokenSingle200Response UpdateAccessUsersSingleTokenSingle(string tokenid, string userid, UpdateAccessUsersSingleTokenSingleRequest updateAccessUsersSingleTokenSingleRequest = default(UpdateAccessUsersSingleTokenSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Update API token for a specific user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of UpdateAccessUsersSingleTokenSingle200Response</returns>
        ApiResponse<UpdateAccessUsersSingleTokenSingle200Response> UpdateAccessUsersSingleTokenSingleWithHttpInfo(string tokenid, string userid, UpdateAccessUsersSingleTokenSingleRequest updateAccessUsersSingleTokenSingleRequest = default(UpdateAccessUsersSingleTokenSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateAccessUsersSingleUnlocktfa
        /// </summary>
        /// <remarks>
        /// Unlock a user&#39;s TFA authentication.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterCephFlagsSingle200Response</returns>
        GetClusterCephFlagsSingle200Response UpdateAccessUsersSingleUnlocktfa(string userid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// updateAccessUsersSingleUnlocktfa
        /// </summary>
        /// <remarks>
        /// Unlock a user&#39;s TFA authentication.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterCephFlagsSingle200Response</returns>
        ApiResponse<GetClusterCephFlagsSingle200Response> UpdateAccessUsersSingleUnlocktfaWithHttpInfo(string userid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// updateClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterAcmeAccountSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterAcmeAccountSingle(string name, UpdateClusterAcmeAccountSingleRequest updateClusterAcmeAccountSingleRequest = default(UpdateClusterAcmeAccountSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterAcmeAccountSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterAcmeAccountSingleWithHttpInfo(string name, UpdateClusterAcmeAccountSingleRequest updateClusterAcmeAccountSingleRequest = default(UpdateClusterAcmeAccountSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Update ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterAcmePluginsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterAcmePluginsSingle(string id, UpdateClusterAcmePluginsSingleRequest updateClusterAcmePluginsSingleRequest = default(UpdateClusterAcmePluginsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Update ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterAcmePluginsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterAcmePluginsSingleWithHttpInfo(string id, UpdateClusterAcmePluginsSingleRequest updateClusterAcmePluginsSingleRequest = default(UpdateClusterAcmePluginsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Update vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterBackupSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterBackupSingle(string id, UpdateClusterBackupSingleRequest updateClusterBackupSingleRequest = default(UpdateClusterBackupSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Update vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterBackupSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterBackupSingleWithHttpInfo(string id, UpdateClusterBackupSingleRequest updateClusterBackupSingleRequest = default(UpdateClusterBackupSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterCephFlags
        /// </summary>
        /// <remarks>
        /// Set/Unset multiple ceph flags at once.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterCephFlagsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterCephFlags(UpdateClusterCephFlagsRequest updateClusterCephFlagsRequest = default(UpdateClusterCephFlagsRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterCephFlags
        /// </summary>
        /// <remarks>
        /// Set/Unset multiple ceph flags at once.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterCephFlagsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterCephFlagsWithHttpInfo(UpdateClusterCephFlagsRequest updateClusterCephFlagsRequest = default(UpdateClusterCephFlagsRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterCephFlagsSingle
        /// </summary>
        /// <remarks>
        /// Set or clear (unset) a specific ceph flag
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="updateClusterCephFlagsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterCephFlagsSingle(string flag, UpdateClusterCephFlagsSingleRequest updateClusterCephFlagsSingleRequest = default(UpdateClusterCephFlagsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterCephFlagsSingle
        /// </summary>
        /// <remarks>
        /// Set or clear (unset) a specific ceph flag
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="updateClusterCephFlagsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterCephFlagsSingleWithHttpInfo(string flag, UpdateClusterCephFlagsSingleRequest updateClusterCephFlagsSingleRequest = default(UpdateClusterCephFlagsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterFirewallAliasesSingle(string name, UpdateClusterFirewallAliasesSingleRequest updateClusterFirewallAliasesSingleRequest = default(UpdateClusterFirewallAliasesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallAliasesSingleWithHttpInfo(string name, UpdateClusterFirewallAliasesSingleRequest updateClusterFirewallAliasesSingleRequest = default(UpdateClusterFirewallAliasesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterFirewallGroupRule(string group, int pos, UpdateClusterFirewallGroupRuleRequest updateClusterFirewallGroupRuleRequest = default(UpdateClusterFirewallGroupRuleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallGroupRuleWithHttpInfo(string group, int pos, UpdateClusterFirewallGroupRuleRequest updateClusterFirewallGroupRuleRequest = default(UpdateClusterFirewallGroupRuleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterFirewallIPSetIP(string cidr, string name, UpdateClusterFirewallIPSetIPRequest updateClusterFirewallIPSetIPRequest = default(UpdateClusterFirewallIPSetIPRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallIPSetIPWithHttpInfo(string cidr, string name, UpdateClusterFirewallIPSetIPRequest updateClusterFirewallIPSetIPRequest = default(UpdateClusterFirewallIPSetIPRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterFirewallOptions(UpdateClusterFirewallOptionsRequest updateClusterFirewallOptionsRequest = default(UpdateClusterFirewallOptionsRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallOptionsWithHttpInfo(UpdateClusterFirewallOptionsRequest updateClusterFirewallOptionsRequest = default(UpdateClusterFirewallOptionsRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterFirewallRule(int pos, UpdateClusterFirewallRuleRequest updateClusterFirewallRuleRequest = default(UpdateClusterFirewallRuleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallRuleWithHttpInfo(int pos, UpdateClusterFirewallRuleRequest updateClusterFirewallRuleRequest = default(UpdateClusterFirewallRuleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Update ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="updateClusterHaGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterHaGroupsSingle(string group, UpdateClusterHaGroupsSingleRequest updateClusterHaGroupsSingleRequest = default(UpdateClusterHaGroupsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Update ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="updateClusterHaGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterHaGroupsSingleWithHttpInfo(string group, UpdateClusterHaGroupsSingleRequest updateClusterHaGroupsSingleRequest = default(UpdateClusterHaGroupsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Update resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="updateClusterHaResourcesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterHaResourcesSingle(string sid, UpdateClusterHaResourcesSingleRequest updateClusterHaResourcesSingleRequest = default(UpdateClusterHaResourcesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Update resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="updateClusterHaResourcesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterHaResourcesSingleWithHttpInfo(string sid, UpdateClusterHaResourcesSingleRequest updateClusterHaResourcesSingleRequest = default(UpdateClusterHaResourcesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Update HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="updateClusterHaRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterHaRulesSingle(string rule, UpdateClusterHaRulesSingleRequest updateClusterHaRulesSingleRequest = default(UpdateClusterHaRulesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Update HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="updateClusterHaRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterHaRulesSingleWithHttpInfo(string rule, UpdateClusterHaRulesSingleRequest updateClusterHaRulesSingleRequest = default(UpdateClusterHaRulesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Update realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterJobsRealmsyncSingle(string id, UpdateClusterJobsRealmsyncSingleRequest updateClusterJobsRealmsyncSingleRequest = default(UpdateClusterJobsRealmsyncSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Update realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterJobsRealmsyncSingleWithHttpInfo(string id, UpdateClusterJobsRealmsyncSingleRequest updateClusterJobsRealmsyncSingleRequest = default(UpdateClusterJobsRealmsyncSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Update a directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingDirSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterMappingDirSingle(string id, UpdateClusterMappingDirSingleRequest updateClusterMappingDirSingleRequest = default(UpdateClusterMappingDirSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Update a directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingDirSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterMappingDirSingleWithHttpInfo(string id, UpdateClusterMappingDirSingleRequest updateClusterMappingDirSingleRequest = default(UpdateClusterMappingDirSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Update a hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingPciSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterMappingPciSingle(string id, UpdateClusterMappingPciSingleRequest updateClusterMappingPciSingleRequest = default(UpdateClusterMappingPciSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Update a hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingPciSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterMappingPciSingleWithHttpInfo(string id, UpdateClusterMappingPciSingleRequest updateClusterMappingPciSingleRequest = default(UpdateClusterMappingPciSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Update a hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingUsbSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterMappingUsbSingle(string id, UpdateClusterMappingUsbSingleRequest updateClusterMappingUsbSingleRequest = default(UpdateClusterMappingUsbSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Update a hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingUsbSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterMappingUsbSingleWithHttpInfo(string id, UpdateClusterMappingUsbSingleRequest updateClusterMappingUsbSingleRequest = default(UpdateClusterMappingUsbSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Update metric server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterMetricsServerSingle(string id, UpdateClusterMetricsServerSingleRequest updateClusterMetricsServerSingleRequest = default(UpdateClusterMetricsServerSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Update metric server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterMetricsServerSingleWithHttpInfo(string id, UpdateClusterMetricsServerSingleRequest updateClusterMetricsServerSingleRequest = default(UpdateClusterMetricsServerSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Update existing gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsGotifySingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterNotificationsEndpointsGotifySingle(string name, UpdateClusterNotificationsEndpointsGotifySingleRequest updateClusterNotificationsEndpointsGotifySingleRequest = default(UpdateClusterNotificationsEndpointsGotifySingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Update existing gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsGotifySingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsGotifySingleWithHttpInfo(string name, UpdateClusterNotificationsEndpointsGotifySingleRequest updateClusterNotificationsEndpointsGotifySingleRequest = default(UpdateClusterNotificationsEndpointsGotifySingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Update existing sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSendmailSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterNotificationsEndpointsSendmailSingle(string name, UpdateClusterNotificationsEndpointsSendmailSingleRequest updateClusterNotificationsEndpointsSendmailSingleRequest = default(UpdateClusterNotificationsEndpointsSendmailSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Update existing sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSendmailSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsSendmailSingleWithHttpInfo(string name, UpdateClusterNotificationsEndpointsSendmailSingleRequest updateClusterNotificationsEndpointsSendmailSingleRequest = default(UpdateClusterNotificationsEndpointsSendmailSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Update existing smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSmtpSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterNotificationsEndpointsSmtpSingle(string name, UpdateClusterNotificationsEndpointsSmtpSingleRequest updateClusterNotificationsEndpointsSmtpSingleRequest = default(UpdateClusterNotificationsEndpointsSmtpSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Update existing smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSmtpSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsSmtpSingleWithHttpInfo(string name, UpdateClusterNotificationsEndpointsSmtpSingleRequest updateClusterNotificationsEndpointsSmtpSingleRequest = default(UpdateClusterNotificationsEndpointsSmtpSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Update existing webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsWebhookSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterNotificationsEndpointsWebhookSingle(string name, UpdateClusterNotificationsEndpointsWebhookSingleRequest updateClusterNotificationsEndpointsWebhookSingleRequest = default(UpdateClusterNotificationsEndpointsWebhookSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Update existing webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsWebhookSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsWebhookSingleWithHttpInfo(string name, UpdateClusterNotificationsEndpointsWebhookSingleRequest updateClusterNotificationsEndpointsWebhookSingleRequest = default(UpdateClusterNotificationsEndpointsWebhookSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Update existing matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsMatchersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterNotificationsMatchersSingle(string name, UpdateClusterNotificationsMatchersSingleRequest updateClusterNotificationsMatchersSingleRequest = default(UpdateClusterNotificationsMatchersSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Update existing matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsMatchersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsMatchersSingleWithHttpInfo(string name, UpdateClusterNotificationsMatchersSingleRequest updateClusterNotificationsMatchersSingleRequest = default(UpdateClusterNotificationsMatchersSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterOptions
        /// </summary>
        /// <remarks>
        /// Set datacenter options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterOptions(UpdateClusterOptionsRequest updateClusterOptionsRequest = default(UpdateClusterOptionsRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterOptions
        /// </summary>
        /// <remarks>
        /// Set datacenter options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterOptionsWithHttpInfo(UpdateClusterOptionsRequest updateClusterOptionsRequest = default(UpdateClusterOptionsRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Update replication job configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterReplicationSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterReplicationSingle(string id, UpdateClusterReplicationSingleRequest updateClusterReplicationSingleRequest = default(UpdateClusterReplicationSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Update replication job configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterReplicationSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterReplicationSingleWithHttpInfo(string id, UpdateClusterReplicationSingleRequest updateClusterReplicationSingleRequest = default(UpdateClusterReplicationSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSDN
        /// </summary>
        /// <remarks>
        /// Apply sdn controller changes &amp;&amp; reload.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterSDNRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSDN(UpdateClusterSDNRequest updateClusterSDNRequest = default(UpdateClusterSDNRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSDN
        /// </summary>
        /// <remarks>
        /// Apply sdn controller changes &amp;&amp; reload.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterSDNRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSDNWithHttpInfo(UpdateClusterSDNRequest updateClusterSDNRequest = default(UpdateClusterSDNRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSDNController
        /// </summary>
        /// <remarks>
        /// Update sdn controller object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="updateClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSDNController(string controller, UpdateClusterSDNControllerRequest updateClusterSDNControllerRequest = default(UpdateClusterSDNControllerRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSDNController
        /// </summary>
        /// <remarks>
        /// Update sdn controller object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="updateClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSDNControllerWithHttpInfo(string controller, UpdateClusterSDNControllerRequest updateClusterSDNControllerRequest = default(UpdateClusterSDNControllerRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Update sdn vnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSDNVnet(string vnet, UpdateClusterSDNVnetRequest updateClusterSDNVnetRequest = default(UpdateClusterSDNVnetRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Update sdn vnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSDNVnetWithHttpInfo(string vnet, UpdateClusterSDNVnetRequest updateClusterSDNVnetRequest = default(UpdateClusterSDNVnetRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Update sdn zone object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="updateClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSDNZone(string zone, UpdateClusterSDNZoneRequest updateClusterSDNZoneRequest = default(UpdateClusterSDNZoneRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Update sdn zone object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="updateClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSDNZoneWithHttpInfo(string zone, UpdateClusterSDNZoneRequest updateClusterSDNZoneRequest = default(UpdateClusterSDNZoneRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn dns object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="updateClusterSdnDnsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSdnDnsSingle(string dns, UpdateClusterSdnDnsSingleRequest updateClusterSdnDnsSingleRequest = default(UpdateClusterSdnDnsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn dns object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="updateClusterSdnDnsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnDnsSingleWithHttpInfo(string dns, UpdateClusterSdnDnsSingleRequest updateClusterSdnDnsSingleRequest = default(UpdateClusterSdnDnsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Update a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterSdnFabricsFabricSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSdnFabricsFabricSingle(string id, UpdateClusterSdnFabricsFabricSingleRequest updateClusterSdnFabricsFabricSingleRequest = default(UpdateClusterSdnFabricsFabricSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Update a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterSdnFabricsFabricSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnFabricsFabricSingleWithHttpInfo(string id, UpdateClusterSdnFabricsFabricSingleRequest updateClusterSdnFabricsFabricSingleRequest = default(UpdateClusterSdnFabricsFabricSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Update a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="updateClusterSdnFabricsNodeSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSdnFabricsNodeSingleSingle(string fabricId, string nodeId, UpdateClusterSdnFabricsNodeSingleSingleRequest updateClusterSdnFabricsNodeSingleSingleRequest = default(UpdateClusterSdnFabricsNodeSingleSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Update a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="updateClusterSdnFabricsNodeSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnFabricsNodeSingleSingleWithHttpInfo(string fabricId, string nodeId, UpdateClusterSdnFabricsNodeSingleSingleRequest updateClusterSdnFabricsNodeSingleSingleRequest = default(UpdateClusterSdnFabricsNodeSingleSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn ipam object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="updateClusterSdnIpamsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSdnIpamsSingle(string ipam, UpdateClusterSdnIpamsSingleRequest updateClusterSdnIpamsSingleRequest = default(UpdateClusterSdnIpamsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn ipam object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="updateClusterSdnIpamsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnIpamsSingleWithHttpInfo(string ipam, UpdateClusterSdnIpamsSingleRequest updateClusterSdnIpamsSingleRequest = default(UpdateClusterSdnIpamsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSdnVnetsSingleFirewallOptions(string vnet, UpdateClusterSdnVnetsSingleFirewallOptionsRequest updateClusterSdnVnetsSingleFirewallOptionsRequest = default(UpdateClusterSdnVnetsSingleFirewallOptionsRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleFirewallOptionsWithHttpInfo(string vnet, UpdateClusterSdnVnetsSingleFirewallOptionsRequest updateClusterSdnVnetsSingleFirewallOptionsRequest = default(UpdateClusterSdnVnetsSingleFirewallOptionsRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSdnVnetsSingleFirewallRulesSingle(int pos, string vnet, UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest updateClusterSdnVnetsSingleFirewallRulesSingleRequest = default(UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(int pos, string vnet, UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest updateClusterSdnVnetsSingleFirewallRulesSingleRequest = default(UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Update IP Mapping in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSdnVnetsSingleIps(string vnet, UpdateClusterSdnVnetsSingleIpsRequest updateClusterSdnVnetsSingleIpsRequest = default(UpdateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Update IP Mapping in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleIpsWithHttpInfo(string vnet, UpdateClusterSdnVnetsSingleIpsRequest updateClusterSdnVnetsSingleIpsRequest = default(UpdateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0);
        /// <summary>
        /// updateClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn subnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleSubnetsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateClusterSdnVnetsSingleSubnetsSingle(string subnet, string vnet, UpdateClusterSdnVnetsSingleSubnetsSingleRequest updateClusterSdnVnetsSingleSubnetsSingleRequest = default(UpdateClusterSdnVnetsSingleSubnetsSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn subnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleSubnetsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(string subnet, string vnet, UpdateClusterSdnVnetsSingleSubnetsSingleRequest updateClusterSdnVnetsSingleSubnetsSingleRequest = default(UpdateClusterSdnVnetsSingleSubnetsSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodeFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodeFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodeFirewallOptions(string node, UpdateNodeFirewallOptionsRequest updateNodeFirewallOptionsRequest = default(UpdateNodeFirewallOptionsRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodeFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodeFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodeFirewallOptionsWithHttpInfo(string node, UpdateNodeFirewallOptionsRequest updateNodeFirewallOptionsRequest = default(UpdateNodeFirewallOptionsRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="updateNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodeFirewallRule(string node, int pos, UpdateNodeFirewallRuleRequest updateNodeFirewallRuleRequest = default(UpdateNodeFirewallRuleRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="updateNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodeFirewallRuleWithHttpInfo(string node, int pos, UpdateNodeFirewallRuleRequest updateNodeFirewallRuleRequest = default(UpdateNodeFirewallRuleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Add a standard repository to the configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleAptRepositories(string node, UpdateNodesSingleAptRepositoriesRequest updateNodesSingleAptRepositoriesRequest = default(UpdateNodesSingleAptRepositoriesRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Add a standard repository to the configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleAptRepositoriesWithHttpInfo(string node, UpdateNodesSingleAptRepositoriesRequest updateNodesSingleAptRepositoriesRequest = default(UpdateNodesSingleAptRepositoriesRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Change POOL settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCephPoolSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleCephPoolSingle(string name, string node, UpdateNodesSingleCephPoolSingleRequest updateNodesSingleCephPoolSingleRequest = default(UpdateNodesSingleCephPoolSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Change POOL settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCephPoolSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleCephPoolSingleWithHttpInfo(string name, string node, UpdateNodesSingleCephPoolSingleRequest updateNodesSingleCephPoolSingleRequest = default(UpdateNodesSingleCephPoolSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Renew existing certificate from CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleCertificatesAcmeCertificate(string node, UpdateNodesSingleCertificatesAcmeCertificateRequest updateNodesSingleCertificatesAcmeCertificateRequest = default(UpdateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Renew existing certificate from CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleCertificatesAcmeCertificateWithHttpInfo(string node, UpdateNodesSingleCertificatesAcmeCertificateRequest updateNodesSingleCertificatesAcmeCertificateRequest = default(UpdateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleConfig
        /// </summary>
        /// <remarks>
        /// Set node configuration options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleConfig(string node, UpdateNodesSingleConfigRequest updateNodesSingleConfigRequest = default(UpdateNodesSingleConfigRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleConfig
        /// </summary>
        /// <remarks>
        /// Set node configuration options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleConfigWithHttpInfo(string node, UpdateNodesSingleConfigRequest updateNodesSingleConfigRequest = default(UpdateNodesSingleConfigRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleDisksWipedisk
        /// </summary>
        /// <remarks>
        /// Wipe a disk or partition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDisksWipediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleDisksWipedisk(string node, UpdateNodesSingleDisksWipediskRequest updateNodesSingleDisksWipediskRequest = default(UpdateNodesSingleDisksWipediskRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleDisksWipedisk
        /// </summary>
        /// <remarks>
        /// Wipe a disk or partition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDisksWipediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleDisksWipediskWithHttpInfo(string node, UpdateNodesSingleDisksWipediskRequest updateNodesSingleDisksWipediskRequest = default(UpdateNodesSingleDisksWipediskRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleDns
        /// </summary>
        /// <remarks>
        /// Write DNS settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleDns(string node, UpdateNodesSingleDnsRequest updateNodesSingleDnsRequest = default(UpdateNodesSingleDnsRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleDns
        /// </summary>
        /// <remarks>
        /// Write DNS settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleDnsWithHttpInfo(string node, UpdateNodesSingleDnsRequest updateNodesSingleDnsRequest = default(UpdateNodesSingleDnsRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleLxcSingleConfig
        /// </summary>
        /// <remarks>
        /// Set container options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleLxcSingleConfig(string node, int vmid, UpdateNodesSingleLxcSingleConfigRequest updateNodesSingleLxcSingleConfigRequest = default(UpdateNodesSingleLxcSingleConfigRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleLxcSingleConfig
        /// </summary>
        /// <remarks>
        /// Set container options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleConfigWithHttpInfo(string node, int vmid, UpdateNodesSingleLxcSingleConfigRequest updateNodesSingleLxcSingleConfigRequest = default(UpdateNodesSingleLxcSingleConfigRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleLxcSingleFirewallAliasesSingle(string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest updateNodesSingleLxcSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest updateNodesSingleLxcSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle(string cidr, string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest = default(UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(string cidr, string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest = default(UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleLxcSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleLxcSingleFirewallOptions(string node, int vmid, UpdateNodesSingleLxcSingleFirewallOptionsRequest updateNodesSingleLxcSingleFirewallOptionsRequest = default(UpdateNodesSingleLxcSingleFirewallOptionsRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallOptionsWithHttpInfo(string node, int vmid, UpdateNodesSingleLxcSingleFirewallOptionsRequest updateNodesSingleLxcSingleFirewallOptionsRequest = default(UpdateNodesSingleLxcSingleFirewallOptionsRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleLxcSingleFirewallRulesSingle(string node, int pos, int vmid, UpdateNodesSingleLxcSingleFirewallRulesSingleRequest updateNodesSingleLxcSingleFirewallRulesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallRulesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(string node, int pos, int vmid, UpdateNodesSingleLxcSingleFirewallRulesSingleRequest updateNodesSingleLxcSingleFirewallRulesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallRulesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleLxcSingleResize
        /// </summary>
        /// <remarks>
        /// Resize a container mount point.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleResizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        CreateNodesSingleQemuSingleMovedisk200Response UpdateNodesSingleLxcSingleResize(string node, int vmid, UpdateNodesSingleLxcSingleResizeRequest updateNodesSingleLxcSingleResizeRequest = default(UpdateNodesSingleLxcSingleResizeRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleLxcSingleResize
        /// </summary>
        /// <remarks>
        /// Resize a container mount point.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleResizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> UpdateNodesSingleLxcSingleResizeWithHttpInfo(string node, int vmid, UpdateNodesSingleLxcSingleResizeRequest updateNodesSingleLxcSingleResizeRequest = default(UpdateNodesSingleLxcSingleResizeRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleLxcSingleSnapshotSingleConfig
        /// </summary>
        /// <remarks>
        /// Update snapshot metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleSnapshotSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleLxcSingleSnapshotSingleConfig(string node, string snapname, int vmid, UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest updateNodesSingleLxcSingleSnapshotSingleConfigRequest = default(UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleLxcSingleSnapshotSingleConfig
        /// </summary>
        /// <remarks>
        /// Update snapshot metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleSnapshotSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfo(string node, string snapname, int vmid, UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest updateNodesSingleLxcSingleSnapshotSingleConfigRequest = default(UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Reload network configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleNetwork(string node, UpdateNodesSingleNetworkRequest updateNodesSingleNetworkRequest = default(UpdateNodesSingleNetworkRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Reload network configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleNetworkWithHttpInfo(string node, UpdateNodesSingleNetworkRequest updateNodesSingleNetworkRequest = default(UpdateNodesSingleNetworkRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Update network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleNetworkSingle(string iface, string node, UpdateNodesSingleNetworkSingleRequest updateNodesSingleNetworkSingleRequest = default(UpdateNodesSingleNetworkSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Update network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleNetworkSingleWithHttpInfo(string iface, string node, UpdateNodesSingleNetworkSingleRequest updateNodesSingleNetworkSingleRequest = default(UpdateNodesSingleNetworkSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleQemuSingleCloudinit
        /// </summary>
        /// <remarks>
        /// Regenerate and change cloudinit config drive.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleQemuSingleCloudinit(string node, int vmid, Object body = default(Object), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleQemuSingleCloudinit
        /// </summary>
        /// <remarks>
        /// Regenerate and change cloudinit config drive.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleCloudinitWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleQemuSingleFirewallAliasesSingle(string name, string node, int vmid, UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest updateNodesSingleQemuSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest updateNodesSingleQemuSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleQemuSingleSendkey
        /// </summary>
        /// <remarks>
        /// Send key event to virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleSendkeyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleQemuSingleSendkey(string node, int vmid, UpdateNodesSingleQemuSingleSendkeyRequest updateNodesSingleQemuSingleSendkeyRequest = default(UpdateNodesSingleQemuSingleSendkeyRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleQemuSingleSendkey
        /// </summary>
        /// <remarks>
        /// Send key event to virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleSendkeyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleSendkeyWithHttpInfo(string node, int vmid, UpdateNodesSingleQemuSingleSendkeyRequest updateNodesSingleQemuSingleSendkeyRequest = default(UpdateNodesSingleQemuSingleSendkeyRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Update volume attributes
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="updateNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleStorageSingleContentSingle(string node, string storage, string volume, UpdateNodesSingleStorageSingleContentSingleRequest updateNodesSingleStorageSingleContentSingleRequest = default(UpdateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Update volume attributes
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="updateNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleStorageSingleContentSingleWithHttpInfo(string node, string storage, string volume, UpdateNodesSingleStorageSingleContentSingleRequest updateNodesSingleStorageSingleContentSingleRequest = default(UpdateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Set subscription key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleSubscription(string node, UpdateNodesSingleSubscriptionRequest updateNodesSingleSubscriptionRequest = default(UpdateNodesSingleSubscriptionRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Set subscription key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleSubscriptionWithHttpInfo(string node, UpdateNodesSingleSubscriptionRequest updateNodesSingleSubscriptionRequest = default(UpdateNodesSingleSubscriptionRequest), int operationIndex = 0);
        /// <summary>
        /// updateNodesSingleTime
        /// </summary>
        /// <remarks>
        /// Set time zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleTimeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateNodesSingleTime(string node, UpdateNodesSingleTimeRequest updateNodesSingleTimeRequest = default(UpdateNodesSingleTimeRequest), int operationIndex = 0);

        /// <summary>
        /// updateNodesSingleTime
        /// </summary>
        /// <remarks>
        /// Set time zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleTimeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleTimeWithHttpInfo(string node, UpdateNodesSingleTimeRequest updateNodesSingleTimeRequest = default(UpdateNodesSingleTimeRequest), int operationIndex = 0);
        /// <summary>
        /// updatePool
        /// </summary>
        /// <remarks>
        /// Update pool data (deprecated, no support for nested pools - use &#39;PUT /pools/?poolid&#x3D;{poolid}&#39; instead).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="updatePoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdatePool(string poolid, UpdatePoolRequest updatePoolRequest = default(UpdatePoolRequest), int operationIndex = 0);

        /// <summary>
        /// updatePool
        /// </summary>
        /// <remarks>
        /// Update pool data (deprecated, no support for nested pools - use &#39;PUT /pools/?poolid&#x3D;{poolid}&#39; instead).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="updatePoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdatePoolWithHttpInfo(string poolid, UpdatePoolRequest updatePoolRequest = default(UpdatePoolRequest), int operationIndex = 0);
        /// <summary>
        /// updatePools
        /// </summary>
        /// <remarks>
        /// Update pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updatePoolsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdatePools(UpdatePoolsRequest updatePoolsRequest = default(UpdatePoolsRequest), int operationIndex = 0);

        /// <summary>
        /// updatePools
        /// </summary>
        /// <remarks>
        /// Update pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updatePoolsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdatePoolsWithHttpInfo(UpdatePoolsRequest updatePoolsRequest = default(UpdatePoolsRequest), int operationIndex = 0);
        /// <summary>
        /// updateStorageSingle
        /// </summary>
        /// <remarks>
        /// Update storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="updateStorageSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateStorage200Response</returns>
        CreateStorage200Response UpdateStorageSingle(string storage, UpdateStorageSingleRequest updateStorageSingleRequest = default(UpdateStorageSingleRequest), int operationIndex = 0);

        /// <summary>
        /// updateStorageSingle
        /// </summary>
        /// <remarks>
        /// Update storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="updateStorageSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateStorage200Response</returns>
        ApiResponse<CreateStorage200Response> UpdateStorageSingleWithHttpInfo(string storage, UpdateStorageSingleRequest updateStorageSingleRequest = default(UpdateStorageSingleRequest), int operationIndex = 0);
        /// <summary>
        /// updateVMConfig
        /// </summary>
        /// <remarks>
        /// Set virtual machine options (asynchronous API).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateVMConfig(string node, int vmid, UpdateVMConfigRequest updateVMConfigRequest = default(UpdateVMConfigRequest), int operationIndex = 0);

        /// <summary>
        /// updateVMConfig
        /// </summary>
        /// <remarks>
        /// Set virtual machine options (asynchronous API).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateVMConfigWithHttpInfo(string node, int vmid, UpdateVMConfigRequest updateVMConfigRequest = default(UpdateVMConfigRequest), int operationIndex = 0);
        /// <summary>
        /// updateVMConfigSync
        /// </summary>
        /// <remarks>
        /// Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateVMConfigSync(string node, int vmid, UpdateVMConfigSyncRequest updateVMConfigSyncRequest = default(UpdateVMConfigSyncRequest), int operationIndex = 0);

        /// <summary>
        /// updateVMConfigSync
        /// </summary>
        /// <remarks>
        /// Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateVMConfigSyncWithHttpInfo(string node, int vmid, UpdateVMConfigSyncRequest updateVMConfigSyncRequest = default(UpdateVMConfigSyncRequest), int operationIndex = 0);
        /// <summary>
        /// updateVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateVMFirewallIPSetIP(string cidr, string name, string node, int vmid, UpdateVMFirewallIPSetIPRequest updateVMFirewallIPSetIPRequest = default(UpdateVMFirewallIPSetIPRequest), int operationIndex = 0);

        /// <summary>
        /// updateVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateVMFirewallIPSetIPWithHttpInfo(string cidr, string name, string node, int vmid, UpdateVMFirewallIPSetIPRequest updateVMFirewallIPSetIPRequest = default(UpdateVMFirewallIPSetIPRequest), int operationIndex = 0);
        /// <summary>
        /// updateVMFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateVMFirewallOptions(string node, int vmid, UpdateVMFirewallOptionsRequest updateVMFirewallOptionsRequest = default(UpdateVMFirewallOptionsRequest), int operationIndex = 0);

        /// <summary>
        /// updateVMFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateVMFirewallOptionsWithHttpInfo(string node, int vmid, UpdateVMFirewallOptionsRequest updateVMFirewallOptionsRequest = default(UpdateVMFirewallOptionsRequest), int operationIndex = 0);
        /// <summary>
        /// updateVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateVMFirewallRule(string node, int pos, int vmid, UpdateVMFirewallRuleRequest updateVMFirewallRuleRequest = default(UpdateVMFirewallRuleRequest), int operationIndex = 0);

        /// <summary>
        /// updateVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateVMFirewallRuleWithHttpInfo(string node, int pos, int vmid, UpdateVMFirewallRuleRequest updateVMFirewallRuleRequest = default(UpdateVMFirewallRuleRequest), int operationIndex = 0);
        /// <summary>
        /// updateVMSnapshotConfig
        /// </summary>
        /// <remarks>
        /// Update snapshot metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMSnapshotConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        CreateClusterReplication200Response UpdateVMSnapshotConfig(string node, string snapname, int vmid, UpdateVMSnapshotConfigRequest updateVMSnapshotConfigRequest = default(UpdateVMSnapshotConfigRequest), int operationIndex = 0);

        /// <summary>
        /// updateVMSnapshotConfig
        /// </summary>
        /// <remarks>
        /// Update snapshot metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMSnapshotConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        ApiResponse<CreateClusterReplication200Response> UpdateVMSnapshotConfigWithHttpInfo(string node, string snapname, int vmid, UpdateVMSnapshotConfigRequest updateVMSnapshotConfigRequest = default(UpdateVMSnapshotConfigRequest), int operationIndex = 0);
        #endregion Synchronous Operations
    }

    /// <summary>
    /// Represents a collection of functions to interact with the API endpoints
    /// </summary>
    public interface IProxmoxGeneratedApiAsync : IApiAccessor
    {
        #region Asynchronous Operations
        /// <summary>
        /// addClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="addClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> AddClusterFirewallGroupRuleAsync(string group, AddClusterFirewallGroupRuleRequest addClusterFirewallGroupRuleRequest = default(AddClusterFirewallGroupRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// addClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="addClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> AddClusterFirewallGroupRuleWithHttpInfoAsync(string group, AddClusterFirewallGroupRuleRequest addClusterFirewallGroupRuleRequest = default(AddClusterFirewallGroupRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// addClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="addClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> AddClusterFirewallIPSetIPAsync(string name, AddClusterFirewallIPSetIPRequest addClusterFirewallIPSetIPRequest = default(AddClusterFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// addClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="addClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> AddClusterFirewallIPSetIPWithHttpInfoAsync(string name, AddClusterFirewallIPSetIPRequest addClusterFirewallIPSetIPRequest = default(AddClusterFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// addClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="addClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> AddClusterFirewallRuleAsync(AddClusterFirewallRuleRequest addClusterFirewallRuleRequest = default(AddClusterFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// addClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="addClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> AddClusterFirewallRuleWithHttpInfoAsync(AddClusterFirewallRuleRequest addClusterFirewallRuleRequest = default(AddClusterFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// addVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="addVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> AddVMFirewallIPSetIPAsync(string name, string node, int vmid, AddVMFirewallIPSetIPRequest addVMFirewallIPSetIPRequest = default(AddVMFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// addVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="addVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> AddVMFirewallIPSetIPWithHttpInfoAsync(string name, string node, int vmid, AddVMFirewallIPSetIPRequest addVMFirewallIPSetIPRequest = default(AddVMFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// cloneVM
        /// </summary>
        /// <remarks>
        /// Create a copy of virtual machine/template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="cloneVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CloneVMAsync(string node, int vmid, CloneVMRequest cloneVMRequest = default(CloneVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// cloneVM
        /// </summary>
        /// <remarks>
        /// Create a copy of virtual machine/template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="cloneVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CloneVMWithHttpInfoAsync(string node, int vmid, CloneVMRequest cloneVMRequest = default(CloneVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessDomains
        /// </summary>
        /// <remarks>
        /// Add an authentication server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessDomainsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessDomainsAsync(CreateAccessDomainsRequest createAccessDomainsRequest = default(CreateAccessDomainsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessDomains
        /// </summary>
        /// <remarks>
        /// Add an authentication server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessDomainsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateAccessDomainsWithHttpInfoAsync(CreateAccessDomainsRequest createAccessDomainsRequest = default(CreateAccessDomainsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessDomainsSingleSync
        /// </summary>
        /// <remarks>
        /// Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name &#39;name-$realm&#39;, so make sure those groups do not exist to prevent overwriting.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="createAccessDomainsSingleSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessDomainsSingleSync200Response</returns>
        System.Threading.Tasks.Task<CreateAccessDomainsSingleSync200Response> CreateAccessDomainsSingleSyncAsync(string realm, CreateAccessDomainsSingleSyncRequest createAccessDomainsSingleSyncRequest = default(CreateAccessDomainsSingleSyncRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessDomainsSingleSync
        /// </summary>
        /// <remarks>
        /// Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name &#39;name-$realm&#39;, so make sure those groups do not exist to prevent overwriting.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="createAccessDomainsSingleSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessDomainsSingleSync200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateAccessDomainsSingleSync200Response>> CreateAccessDomainsSingleSyncWithHttpInfoAsync(string realm, CreateAccessDomainsSingleSyncRequest createAccessDomainsSingleSyncRequest = default(CreateAccessDomainsSingleSyncRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessGroups
        /// </summary>
        /// <remarks>
        /// Create new group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessGroupsAsync(CreateAccessGroupsRequest createAccessGroupsRequest = default(CreateAccessGroupsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessGroups
        /// </summary>
        /// <remarks>
        /// Create new group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateAccessGroupsWithHttpInfoAsync(CreateAccessGroupsRequest createAccessGroupsRequest = default(CreateAccessGroupsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessOpenidAuthurl
        /// </summary>
        /// <remarks>
        /// Get the OpenId Authorization Url for the specified realm.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidAuthurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessOpenidAuthurl200Response</returns>
        System.Threading.Tasks.Task<CreateAccessOpenidAuthurl200Response> CreateAccessOpenidAuthurlAsync(CreateAccessOpenidAuthurlRequest createAccessOpenidAuthurlRequest = default(CreateAccessOpenidAuthurlRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessOpenidAuthurl
        /// </summary>
        /// <remarks>
        /// Get the OpenId Authorization Url for the specified realm.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidAuthurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessOpenidAuthurl200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateAccessOpenidAuthurl200Response>> CreateAccessOpenidAuthurlWithHttpInfoAsync(CreateAccessOpenidAuthurlRequest createAccessOpenidAuthurlRequest = default(CreateAccessOpenidAuthurlRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessOpenidLogin
        /// </summary>
        /// <remarks>
        ///  Verify OpenID authorization code and create a ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidLoginRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessOpenidLoginAsync(CreateAccessOpenidLoginRequest createAccessOpenidLoginRequest = default(CreateAccessOpenidLoginRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessOpenidLogin
        /// </summary>
        /// <remarks>
        ///  Verify OpenID authorization code and create a ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidLoginRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateAccessOpenidLoginWithHttpInfoAsync(CreateAccessOpenidLoginRequest createAccessOpenidLoginRequest = default(CreateAccessOpenidLoginRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessRoles
        /// </summary>
        /// <remarks>
        /// Create new role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessRolesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessRolesAsync(CreateAccessRolesRequest createAccessRolesRequest = default(CreateAccessRolesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessRoles
        /// </summary>
        /// <remarks>
        /// Create new role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessRolesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateAccessRolesWithHttpInfoAsync(CreateAccessRolesRequest createAccessRolesRequest = default(CreateAccessRolesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessTfaSingle
        /// </summary>
        /// <remarks>
        /// Add a TFA entry for a user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="createAccessTfaSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessTfaSingle200Response</returns>
        System.Threading.Tasks.Task<CreateAccessTfaSingle200Response> CreateAccessTfaSingleAsync(string userid, CreateAccessTfaSingleRequest createAccessTfaSingleRequest = default(CreateAccessTfaSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessTfaSingle
        /// </summary>
        /// <remarks>
        /// Add a TFA entry for a user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="createAccessTfaSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessTfaSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateAccessTfaSingle200Response>> CreateAccessTfaSingleWithHttpInfoAsync(string userid, CreateAccessTfaSingleRequest createAccessTfaSingleRequest = default(CreateAccessTfaSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessTicket
        /// </summary>
        /// <remarks>
        /// Create or verify authentication ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessTicketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessTicket200Response</returns>
        System.Threading.Tasks.Task<CreateAccessTicket200Response> CreateAccessTicketAsync(CreateAccessTicketRequest createAccessTicketRequest = default(CreateAccessTicketRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessTicket
        /// </summary>
        /// <remarks>
        /// Create or verify authentication ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessTicketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessTicket200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateAccessTicket200Response>> CreateAccessTicketWithHttpInfoAsync(CreateAccessTicketRequest createAccessTicketRequest = default(CreateAccessTicketRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessUsers
        /// </summary>
        /// <remarks>
        /// Create new user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessUsersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessUsersAsync(CreateAccessUsersRequest createAccessUsersRequest = default(CreateAccessUsersRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessUsers
        /// </summary>
        /// <remarks>
        /// Create new user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessUsersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateAccessUsersWithHttpInfoAsync(CreateAccessUsersRequest createAccessUsersRequest = default(CreateAccessUsersRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="createAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessUsersSingleTokenSingle200Response</returns>
        System.Threading.Tasks.Task<CreateAccessUsersSingleTokenSingle200Response> CreateAccessUsersSingleTokenSingleAsync(string tokenid, string userid, CreateAccessUsersSingleTokenSingleRequest createAccessUsersSingleTokenSingleRequest = default(CreateAccessUsersSingleTokenSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="createAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessUsersSingleTokenSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateAccessUsersSingleTokenSingle200Response>> CreateAccessUsersSingleTokenSingleWithHttpInfoAsync(string tokenid, string userid, CreateAccessUsersSingleTokenSingleRequest createAccessUsersSingleTokenSingleRequest = default(CreateAccessUsersSingleTokenSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createAccessVncticket
        /// </summary>
        /// <remarks>
        /// verify VNC authentication ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessVncticketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessVncticketAsync(CreateAccessVncticketRequest createAccessVncticketRequest = default(CreateAccessVncticketRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createAccessVncticket
        /// </summary>
        /// <remarks>
        /// verify VNC authentication ticket.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessVncticketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateAccessVncticketWithHttpInfoAsync(CreateAccessVncticketRequest createAccessVncticketRequest = default(CreateAccessVncticketRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterAcmeAccount
        /// </summary>
        /// <remarks>
        /// Register a new ACME account with CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmeAccountRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterAcmeAccountAsync(CreateClusterAcmeAccountRequest createClusterAcmeAccountRequest = default(CreateClusterAcmeAccountRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterAcmeAccount
        /// </summary>
        /// <remarks>
        /// Register a new ACME account with CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmeAccountRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterAcmeAccountWithHttpInfoAsync(CreateClusterAcmeAccountRequest createClusterAcmeAccountRequest = default(CreateClusterAcmeAccountRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterAcmePlugins
        /// </summary>
        /// <remarks>
        /// Add ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmePluginsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterAcmePluginsAsync(CreateClusterAcmePluginsRequest createClusterAcmePluginsRequest = default(CreateClusterAcmePluginsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterAcmePlugins
        /// </summary>
        /// <remarks>
        /// Add ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmePluginsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterAcmePluginsWithHttpInfoAsync(CreateClusterAcmePluginsRequest createClusterAcmePluginsRequest = default(CreateClusterAcmePluginsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterBackup
        /// </summary>
        /// <remarks>
        /// Create new vzdump backup job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBackupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterBackupAsync(CreateClusterBackupRequest createClusterBackupRequest = default(CreateClusterBackupRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterBackup
        /// </summary>
        /// <remarks>
        /// Create new vzdump backup job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBackupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterBackupWithHttpInfoAsync(CreateClusterBackupRequest createClusterBackupRequest = default(CreateClusterBackupRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterBulkactionGuestMigrate
        /// </summary>
        /// <remarks>
        /// Bulk migrate all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterBulkactionGuestStart200Response</returns>
        System.Threading.Tasks.Task<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestMigrateAsync(CreateClusterBulkactionGuestMigrateRequest createClusterBulkactionGuestMigrateRequest = default(CreateClusterBulkactionGuestMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterBulkactionGuestMigrate
        /// </summary>
        /// <remarks>
        /// Bulk migrate all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterBulkactionGuestStart200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterBulkactionGuestStart200Response>> CreateClusterBulkactionGuestMigrateWithHttpInfoAsync(CreateClusterBulkactionGuestMigrateRequest createClusterBulkactionGuestMigrateRequest = default(CreateClusterBulkactionGuestMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterBulkactionGuestShutdown
        /// </summary>
        /// <remarks>
        /// Bulk shutdown all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterBulkactionGuestStart200Response</returns>
        System.Threading.Tasks.Task<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestShutdownAsync(CreateClusterBulkactionGuestShutdownRequest createClusterBulkactionGuestShutdownRequest = default(CreateClusterBulkactionGuestShutdownRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterBulkactionGuestShutdown
        /// </summary>
        /// <remarks>
        /// Bulk shutdown all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterBulkactionGuestStart200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterBulkactionGuestStart200Response>> CreateClusterBulkactionGuestShutdownWithHttpInfoAsync(CreateClusterBulkactionGuestShutdownRequest createClusterBulkactionGuestShutdownRequest = default(CreateClusterBulkactionGuestShutdownRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterBulkactionGuestStart
        /// </summary>
        /// <remarks>
        /// Bulk start or resume all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterBulkactionGuestStart200Response</returns>
        System.Threading.Tasks.Task<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestStartAsync(CreateClusterBulkactionGuestStartRequest createClusterBulkactionGuestStartRequest = default(CreateClusterBulkactionGuestStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterBulkactionGuestStart
        /// </summary>
        /// <remarks>
        /// Bulk start or resume all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterBulkactionGuestStart200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterBulkactionGuestStart200Response>> CreateClusterBulkactionGuestStartWithHttpInfoAsync(CreateClusterBulkactionGuestStartRequest createClusterBulkactionGuestStartRequest = default(CreateClusterBulkactionGuestStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterBulkactionGuestSuspend
        /// </summary>
        /// <remarks>
        /// Bulk suspend all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestSuspendRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterBulkactionGuestStart200Response</returns>
        System.Threading.Tasks.Task<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestSuspendAsync(CreateClusterBulkactionGuestSuspendRequest createClusterBulkactionGuestSuspendRequest = default(CreateClusterBulkactionGuestSuspendRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterBulkactionGuestSuspend
        /// </summary>
        /// <remarks>
        /// Bulk suspend all guests on the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestSuspendRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterBulkactionGuestStart200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterBulkactionGuestStart200Response>> CreateClusterBulkactionGuestSuspendWithHttpInfoAsync(CreateClusterBulkactionGuestSuspendRequest createClusterBulkactionGuestSuspendRequest = default(CreateClusterBulkactionGuestSuspendRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterConfig
        /// </summary>
        /// <remarks>
        /// Generate new cluster configuration. If no links given, default to local IP address as link0.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterConfigAsync(CreateClusterConfigRequest createClusterConfigRequest = default(CreateClusterConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterConfig
        /// </summary>
        /// <remarks>
        /// Generate new cluster configuration. If no links given, default to local IP address as link0.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterConfigWithHttpInfoAsync(CreateClusterConfigRequest createClusterConfigRequest = default(CreateClusterConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterConfigJoin
        /// </summary>
        /// <remarks>
        /// Joins this node into an existing cluster. If no links are given, default to IP resolved by node&#39;s hostname on single link (fallback fails for clusters with multiple links).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigJoinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterConfigJoinAsync(CreateClusterConfigJoinRequest createClusterConfigJoinRequest = default(CreateClusterConfigJoinRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterConfigJoin
        /// </summary>
        /// <remarks>
        /// Joins this node into an existing cluster. If no links are given, default to IP resolved by node&#39;s hostname on single link (fallback fails for clusters with multiple links).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigJoinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterConfigJoinWithHttpInfoAsync(CreateClusterConfigJoinRequest createClusterConfigJoinRequest = default(CreateClusterConfigJoinRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterConfigNodesSingle
        /// </summary>
        /// <remarks>
        /// Adds a node to the cluster configuration. This call is for internal use.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createClusterConfigNodesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterConfigNodesSingle200Response</returns>
        System.Threading.Tasks.Task<CreateClusterConfigNodesSingle200Response> CreateClusterConfigNodesSingleAsync(string node, CreateClusterConfigNodesSingleRequest createClusterConfigNodesSingleRequest = default(CreateClusterConfigNodesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterConfigNodesSingle
        /// </summary>
        /// <remarks>
        /// Adds a node to the cluster configuration. This call is for internal use.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createClusterConfigNodesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterConfigNodesSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterConfigNodesSingle200Response>> CreateClusterConfigNodesSingleWithHttpInfoAsync(string node, CreateClusterConfigNodesSingleRequest createClusterConfigNodesSingleRequest = default(CreateClusterConfigNodesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterFirewallAliasesAsync(CreateClusterFirewallAliasesRequest createClusterFirewallAliasesRequest = default(CreateClusterFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterFirewallAliasesWithHttpInfoAsync(CreateClusterFirewallAliasesRequest createClusterFirewallAliasesRequest = default(CreateClusterFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterFirewallGroup
        /// </summary>
        /// <remarks>
        /// Create new security group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallGroupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterFirewallGroupAsync(CreateClusterFirewallGroupRequest createClusterFirewallGroupRequest = default(CreateClusterFirewallGroupRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterFirewallGroup
        /// </summary>
        /// <remarks>
        /// Create new security group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallGroupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterFirewallGroupWithHttpInfoAsync(CreateClusterFirewallGroupRequest createClusterFirewallGroupRequest = default(CreateClusterFirewallGroupRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterFirewallIPSetAsync(CreateClusterFirewallIPSetRequest createClusterFirewallIPSetRequest = default(CreateClusterFirewallIPSetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterFirewallIPSetWithHttpInfoAsync(CreateClusterFirewallIPSetRequest createClusterFirewallIPSetRequest = default(CreateClusterFirewallIPSetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterHaGroups
        /// </summary>
        /// <remarks>
        /// Create a new HA group. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterHaGroupsAsync(CreateClusterHaGroupsRequest createClusterHaGroupsRequest = default(CreateClusterHaGroupsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterHaGroups
        /// </summary>
        /// <remarks>
        /// Create a new HA group. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterHaGroupsWithHttpInfoAsync(CreateClusterHaGroupsRequest createClusterHaGroupsRequest = default(CreateClusterHaGroupsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterHaResources
        /// </summary>
        /// <remarks>
        /// Create a new HA resource.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaResourcesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterHaResourcesAsync(CreateClusterHaResourcesRequest createClusterHaResourcesRequest = default(CreateClusterHaResourcesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterHaResources
        /// </summary>
        /// <remarks>
        /// Create a new HA resource.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaResourcesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterHaResourcesWithHttpInfoAsync(CreateClusterHaResourcesRequest createClusterHaResourcesRequest = default(CreateClusterHaResourcesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterHaResourcesSingleMigrate
        /// </summary>
        /// <remarks>
        /// Request resource migration (online) to another node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterHaResourcesSingleMigrate200Response</returns>
        System.Threading.Tasks.Task<CreateClusterHaResourcesSingleMigrate200Response> CreateClusterHaResourcesSingleMigrateAsync(string sid, CreateClusterHaResourcesSingleMigrateRequest createClusterHaResourcesSingleMigrateRequest = default(CreateClusterHaResourcesSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterHaResourcesSingleMigrate
        /// </summary>
        /// <remarks>
        /// Request resource migration (online) to another node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterHaResourcesSingleMigrate200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterHaResourcesSingleMigrate200Response>> CreateClusterHaResourcesSingleMigrateWithHttpInfoAsync(string sid, CreateClusterHaResourcesSingleMigrateRequest createClusterHaResourcesSingleMigrateRequest = default(CreateClusterHaResourcesSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterHaResourcesSingleRelocate
        /// </summary>
        /// <remarks>
        /// Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleRelocateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterHaResourcesSingleRelocate200Response</returns>
        System.Threading.Tasks.Task<CreateClusterHaResourcesSingleRelocate200Response> CreateClusterHaResourcesSingleRelocateAsync(string sid, CreateClusterHaResourcesSingleRelocateRequest createClusterHaResourcesSingleRelocateRequest = default(CreateClusterHaResourcesSingleRelocateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterHaResourcesSingleRelocate
        /// </summary>
        /// <remarks>
        /// Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleRelocateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterHaResourcesSingleRelocate200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterHaResourcesSingleRelocate200Response>> CreateClusterHaResourcesSingleRelocateWithHttpInfoAsync(string sid, CreateClusterHaResourcesSingleRelocateRequest createClusterHaResourcesSingleRelocateRequest = default(CreateClusterHaResourcesSingleRelocateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterHaRules
        /// </summary>
        /// <remarks>
        /// Create HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterHaRulesAsync(CreateClusterHaRulesRequest createClusterHaRulesRequest = default(CreateClusterHaRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterHaRules
        /// </summary>
        /// <remarks>
        /// Create HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterHaRulesWithHttpInfoAsync(CreateClusterHaRulesRequest createClusterHaRulesRequest = default(CreateClusterHaRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Create new realm-sync job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterJobsRealmsyncSingleAsync(string id, CreateClusterJobsRealmsyncSingleRequest createClusterJobsRealmsyncSingleRequest = default(CreateClusterJobsRealmsyncSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Create new realm-sync job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterJobsRealmsyncSingleWithHttpInfoAsync(string id, CreateClusterJobsRealmsyncSingleRequest createClusterJobsRealmsyncSingleRequest = default(CreateClusterJobsRealmsyncSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterMappingDir
        /// </summary>
        /// <remarks>
        /// Create a new directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingDirRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterMappingDirAsync(CreateClusterMappingDirRequest createClusterMappingDirRequest = default(CreateClusterMappingDirRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterMappingDir
        /// </summary>
        /// <remarks>
        /// Create a new directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingDirRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterMappingDirWithHttpInfoAsync(CreateClusterMappingDirRequest createClusterMappingDirRequest = default(CreateClusterMappingDirRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterMappingPci
        /// </summary>
        /// <remarks>
        /// Create a new hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingPciRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterMappingPciAsync(CreateClusterMappingPciRequest createClusterMappingPciRequest = default(CreateClusterMappingPciRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterMappingPci
        /// </summary>
        /// <remarks>
        /// Create a new hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingPciRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterMappingPciWithHttpInfoAsync(CreateClusterMappingPciRequest createClusterMappingPciRequest = default(CreateClusterMappingPciRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterMappingUsb
        /// </summary>
        /// <remarks>
        /// Create a new hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingUsbRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterMappingUsbAsync(CreateClusterMappingUsbRequest createClusterMappingUsbRequest = default(CreateClusterMappingUsbRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterMappingUsb
        /// </summary>
        /// <remarks>
        /// Create a new hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingUsbRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterMappingUsbWithHttpInfoAsync(CreateClusterMappingUsbRequest createClusterMappingUsbRequest = default(CreateClusterMappingUsbRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Create a new external metric server config
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterMetricsServerSingleAsync(string id, CreateClusterMetricsServerSingleRequest createClusterMetricsServerSingleRequest = default(CreateClusterMetricsServerSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Create a new external metric server config
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterMetricsServerSingleWithHttpInfoAsync(string id, CreateClusterMetricsServerSingleRequest createClusterMetricsServerSingleRequest = default(CreateClusterMetricsServerSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterNotificationsEndpointsGotify
        /// </summary>
        /// <remarks>
        /// Create a new gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsGotifyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsGotifyAsync(CreateClusterNotificationsEndpointsGotifyRequest createClusterNotificationsEndpointsGotifyRequest = default(CreateClusterNotificationsEndpointsGotifyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterNotificationsEndpointsGotify
        /// </summary>
        /// <remarks>
        /// Create a new gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsGotifyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsEndpointsGotifyWithHttpInfoAsync(CreateClusterNotificationsEndpointsGotifyRequest createClusterNotificationsEndpointsGotifyRequest = default(CreateClusterNotificationsEndpointsGotifyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterNotificationsEndpointsSendmail
        /// </summary>
        /// <remarks>
        /// Create a new sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSendmailRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsSendmailAsync(CreateClusterNotificationsEndpointsSendmailRequest createClusterNotificationsEndpointsSendmailRequest = default(CreateClusterNotificationsEndpointsSendmailRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterNotificationsEndpointsSendmail
        /// </summary>
        /// <remarks>
        /// Create a new sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSendmailRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsEndpointsSendmailWithHttpInfoAsync(CreateClusterNotificationsEndpointsSendmailRequest createClusterNotificationsEndpointsSendmailRequest = default(CreateClusterNotificationsEndpointsSendmailRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterNotificationsEndpointsSmtp
        /// </summary>
        /// <remarks>
        /// Create a new smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSmtpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsSmtpAsync(CreateClusterNotificationsEndpointsSmtpRequest createClusterNotificationsEndpointsSmtpRequest = default(CreateClusterNotificationsEndpointsSmtpRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterNotificationsEndpointsSmtp
        /// </summary>
        /// <remarks>
        /// Create a new smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSmtpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsEndpointsSmtpWithHttpInfoAsync(CreateClusterNotificationsEndpointsSmtpRequest createClusterNotificationsEndpointsSmtpRequest = default(CreateClusterNotificationsEndpointsSmtpRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterNotificationsEndpointsWebhook
        /// </summary>
        /// <remarks>
        /// Create a new webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsWebhookRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsWebhookAsync(CreateClusterNotificationsEndpointsWebhookRequest createClusterNotificationsEndpointsWebhookRequest = default(CreateClusterNotificationsEndpointsWebhookRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterNotificationsEndpointsWebhook
        /// </summary>
        /// <remarks>
        /// Create a new webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsWebhookRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsEndpointsWebhookWithHttpInfoAsync(CreateClusterNotificationsEndpointsWebhookRequest createClusterNotificationsEndpointsWebhookRequest = default(CreateClusterNotificationsEndpointsWebhookRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterNotificationsMatchers
        /// </summary>
        /// <remarks>
        /// Create a new matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsMatchersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsMatchersAsync(CreateClusterNotificationsMatchersRequest createClusterNotificationsMatchersRequest = default(CreateClusterNotificationsMatchersRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterNotificationsMatchers
        /// </summary>
        /// <remarks>
        /// Create a new matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsMatchersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsMatchersWithHttpInfoAsync(CreateClusterNotificationsMatchersRequest createClusterNotificationsMatchersRequest = default(CreateClusterNotificationsMatchersRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterNotificationsTargetsSingleTest
        /// </summary>
        /// <remarks>
        /// Send a test notification to a provided target.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsTargetsSingleTestAsync(string name, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterNotificationsTargetsSingleTest
        /// </summary>
        /// <remarks>
        /// Send a test notification to a provided target.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsTargetsSingleTestWithHttpInfoAsync(string name, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterReplication
        /// </summary>
        /// <remarks>
        /// Create a new replication job
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterReplicationRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterReplicationAsync(CreateClusterReplicationRequest createClusterReplicationRequest = default(CreateClusterReplicationRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterReplication
        /// </summary>
        /// <remarks>
        /// Create a new replication job
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterReplicationRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterReplicationWithHttpInfoAsync(CreateClusterReplicationRequest createClusterReplicationRequest = default(CreateClusterReplicationRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSDNController
        /// </summary>
        /// <remarks>
        /// Create a new sdn controller object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSDNControllerAsync(CreateClusterSDNControllerRequest createClusterSDNControllerRequest = default(CreateClusterSDNControllerRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSDNController
        /// </summary>
        /// <remarks>
        /// Create a new sdn controller object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSDNControllerWithHttpInfoAsync(CreateClusterSDNControllerRequest createClusterSDNControllerRequest = default(CreateClusterSDNControllerRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Create a new sdn vnet object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSDNVnetAsync(CreateClusterSDNVnetRequest createClusterSDNVnetRequest = default(CreateClusterSDNVnetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Create a new sdn vnet object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSDNVnetWithHttpInfoAsync(CreateClusterSDNVnetRequest createClusterSDNVnetRequest = default(CreateClusterSDNVnetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Create a new sdn zone object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSDNZoneAsync(CreateClusterSDNZoneRequest createClusterSDNZoneRequest = default(CreateClusterSDNZoneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Create a new sdn zone object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSDNZoneWithHttpInfoAsync(CreateClusterSDNZoneRequest createClusterSDNZoneRequest = default(CreateClusterSDNZoneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnDns
        /// </summary>
        /// <remarks>
        /// Create a new sdn dns object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnDnsAsync(CreateClusterSdnDnsRequest createClusterSdnDnsRequest = default(CreateClusterSdnDnsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnDns
        /// </summary>
        /// <remarks>
        /// Create a new sdn dns object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnDnsWithHttpInfoAsync(CreateClusterSdnDnsRequest createClusterSdnDnsRequest = default(CreateClusterSdnDnsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnFabricsFabric
        /// </summary>
        /// <remarks>
        /// Add a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnFabricsFabricRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnFabricsFabricAsync(CreateClusterSdnFabricsFabricRequest createClusterSdnFabricsFabricRequest = default(CreateClusterSdnFabricsFabricRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnFabricsFabric
        /// </summary>
        /// <remarks>
        /// Add a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnFabricsFabricRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnFabricsFabricWithHttpInfoAsync(CreateClusterSdnFabricsFabricRequest createClusterSdnFabricsFabricRequest = default(CreateClusterSdnFabricsFabricRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnFabricsNodeSingle
        /// </summary>
        /// <remarks>
        /// Add a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="createClusterSdnFabricsNodeSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnFabricsNodeSingleAsync(string fabricId, CreateClusterSdnFabricsNodeSingleRequest createClusterSdnFabricsNodeSingleRequest = default(CreateClusterSdnFabricsNodeSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnFabricsNodeSingle
        /// </summary>
        /// <remarks>
        /// Add a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="createClusterSdnFabricsNodeSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnFabricsNodeSingleWithHttpInfoAsync(string fabricId, CreateClusterSdnFabricsNodeSingleRequest createClusterSdnFabricsNodeSingleRequest = default(CreateClusterSdnFabricsNodeSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnIpams
        /// </summary>
        /// <remarks>
        /// Create a new sdn ipam object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnIpamsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnIpamsAsync(CreateClusterSdnIpamsRequest createClusterSdnIpamsRequest = default(CreateClusterSdnIpamsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnIpams
        /// </summary>
        /// <remarks>
        /// Create a new sdn ipam object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnIpamsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnIpamsWithHttpInfoAsync(CreateClusterSdnIpamsRequest createClusterSdnIpamsRequest = default(CreateClusterSdnIpamsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnLock
        /// </summary>
        /// <remarks>
        /// Acquire global lock for SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnLockRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnLockAsync(CreateClusterSdnLockRequest createClusterSdnLockRequest = default(CreateClusterSdnLockRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnLock
        /// </summary>
        /// <remarks>
        /// Acquire global lock for SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnLockRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnLockWithHttpInfoAsync(CreateClusterSdnLockRequest createClusterSdnLockRequest = default(CreateClusterSdnLockRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnRollback
        /// </summary>
        /// <remarks>
        /// Rollback pending changes to SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnRollbackAsync(CreateClusterSdnRollbackRequest createClusterSdnRollbackRequest = default(CreateClusterSdnRollbackRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnRollback
        /// </summary>
        /// <remarks>
        /// Rollback pending changes to SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnRollbackWithHttpInfoAsync(CreateClusterSdnRollbackRequest createClusterSdnRollbackRequest = default(CreateClusterSdnRollbackRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnVnetsSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleFirewallRulesAsync(string vnet, CreateClusterSdnVnetsSingleFirewallRulesRequest createClusterSdnVnetsSingleFirewallRulesRequest = default(CreateClusterSdnVnetsSingleFirewallRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnVnetsSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnVnetsSingleFirewallRulesWithHttpInfoAsync(string vnet, CreateClusterSdnVnetsSingleFirewallRulesRequest createClusterSdnVnetsSingleFirewallRulesRequest = default(CreateClusterSdnVnetsSingleFirewallRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Create IP Mapping in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleIpsAsync(string vnet, CreateClusterSdnVnetsSingleIpsRequest createClusterSdnVnetsSingleIpsRequest = default(CreateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Create IP Mapping in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnVnetsSingleIpsWithHttpInfoAsync(string vnet, CreateClusterSdnVnetsSingleIpsRequest createClusterSdnVnetsSingleIpsRequest = default(CreateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createClusterSdnVnetsSingleSubnets
        /// </summary>
        /// <remarks>
        /// Create a new sdn subnet object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleSubnetsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleSubnetsAsync(string vnet, CreateClusterSdnVnetsSingleSubnetsRequest createClusterSdnVnetsSingleSubnetsRequest = default(CreateClusterSdnVnetsSingleSubnetsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createClusterSdnVnetsSingleSubnets
        /// </summary>
        /// <remarks>
        /// Create a new sdn subnet object.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleSubnetsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnVnetsSingleSubnetsWithHttpInfoAsync(string vnet, CreateClusterSdnVnetsSingleSubnetsRequest createClusterSdnVnetsSingleSubnetsRequest = default(CreateClusterSdnVnetsSingleSubnetsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodeFirewallRuleAsync(string node, CreateNodeFirewallRuleRequest createNodeFirewallRuleRequest = default(CreateNodeFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodeFirewallRuleWithHttpInfoAsync(string node, CreateNodeFirewallRuleRequest createNodeFirewallRuleRequest = default(CreateNodeFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleAplinfo
        /// </summary>
        /// <remarks>
        /// Download appliance templates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAplinfoRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleAplinfoAsync(string node, CreateNodesSingleAplinfoRequest createNodesSingleAplinfoRequest = default(CreateNodesSingleAplinfoRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleAplinfo
        /// </summary>
        /// <remarks>
        /// Download appliance templates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAplinfoRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleAplinfoWithHttpInfoAsync(string node, CreateNodesSingleAplinfoRequest createNodesSingleAplinfoRequest = default(CreateNodesSingleAplinfoRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Change the properties of a repository. Currently only allows enabling/disabling.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleAptRepositoriesAsync(string node, CreateNodesSingleAptRepositoriesRequest createNodesSingleAptRepositoriesRequest = default(CreateNodesSingleAptRepositoriesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Change the properties of a repository. Currently only allows enabling/disabling.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleAptRepositoriesWithHttpInfoAsync(string node, CreateNodesSingleAptRepositoriesRequest createNodesSingleAptRepositoriesRequest = default(CreateNodesSingleAptRepositoriesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleAptUpdate
        /// </summary>
        /// <remarks>
        /// This is used to resynchronize the package index files from their sources (apt-get update).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptUpdateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleAptUpdateAsync(string node, CreateNodesSingleAptUpdateRequest createNodesSingleAptUpdateRequest = default(CreateNodesSingleAptUpdateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleAptUpdate
        /// </summary>
        /// <remarks>
        /// This is used to resynchronize the package index files from their sources (apt-get update).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptUpdateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleAptUpdateWithHttpInfoAsync(string node, CreateNodesSingleAptUpdateRequest createNodesSingleAptUpdateRequest = default(CreateNodesSingleAptUpdateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephFsSingle
        /// </summary>
        /// <remarks>
        /// Create a Ceph filesystem
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephFsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephFsSingleAsync(string name, string node, CreateNodesSingleCephFsSingleRequest createNodesSingleCephFsSingleRequest = default(CreateNodesSingleCephFsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephFsSingle
        /// </summary>
        /// <remarks>
        /// Create a Ceph filesystem
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephFsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephFsSingleWithHttpInfoAsync(string name, string node, CreateNodesSingleCephFsSingleRequest createNodesSingleCephFsSingleRequest = default(CreateNodesSingleCephFsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephInit
        /// </summary>
        /// <remarks>
        /// Create initial ceph default configuration and setup symlinks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephInitRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephInitAsync(string node, CreateNodesSingleCephInitRequest createNodesSingleCephInitRequest = default(CreateNodesSingleCephInitRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephInit
        /// </summary>
        /// <remarks>
        /// Create initial ceph default configuration and setup symlinks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephInitRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephInitWithHttpInfoAsync(string node, CreateNodesSingleCephInitRequest createNodesSingleCephInitRequest = default(CreateNodesSingleCephInitRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephMdsSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Metadata Server (MDS)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMdsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephMdsSingleAsync(string name, string node, CreateNodesSingleCephMdsSingleRequest createNodesSingleCephMdsSingleRequest = default(CreateNodesSingleCephMdsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephMdsSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Metadata Server (MDS)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMdsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephMdsSingleWithHttpInfoAsync(string name, string node, CreateNodesSingleCephMdsSingleRequest createNodesSingleCephMdsSingleRequest = default(CreateNodesSingleCephMdsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephMgrSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Manager
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephMgrSingleAsync(string id, string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephMgrSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Manager
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephMgrSingleWithHttpInfoAsync(string id, string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephMonSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Monitor and Manager
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMonSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephMonSingleAsync(string monid, string node, CreateNodesSingleCephMonSingleRequest createNodesSingleCephMonSingleRequest = default(CreateNodesSingleCephMonSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephMonSingle
        /// </summary>
        /// <remarks>
        /// Create Ceph Monitor and Manager
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMonSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephMonSingleWithHttpInfoAsync(string monid, string node, CreateNodesSingleCephMonSingleRequest createNodesSingleCephMonSingleRequest = default(CreateNodesSingleCephMonSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephOsd
        /// </summary>
        /// <remarks>
        /// Create OSD
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephOsdRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephOsdAsync(string node, CreateNodesSingleCephOsdRequest createNodesSingleCephOsdRequest = default(CreateNodesSingleCephOsdRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephOsd
        /// </summary>
        /// <remarks>
        /// Create OSD
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephOsdRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephOsdWithHttpInfoAsync(string node, CreateNodesSingleCephOsdRequest createNodesSingleCephOsdRequest = default(CreateNodesSingleCephOsdRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephOsdSingleIn
        /// </summary>
        /// <remarks>
        /// ceph osd in
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleInAsync(string node, int osdid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephOsdSingleIn
        /// </summary>
        /// <remarks>
        /// ceph osd in
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephOsdSingleInWithHttpInfoAsync(string node, int osdid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephOsdSingleOut
        /// </summary>
        /// <remarks>
        /// ceph osd out
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleOutAsync(string node, int osdid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephOsdSingleOut
        /// </summary>
        /// <remarks>
        /// ceph osd out
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephOsdSingleOutWithHttpInfoAsync(string node, int osdid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephOsdSingleScrub
        /// </summary>
        /// <remarks>
        /// Instruct the OSD to scrub.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="createNodesSingleCephOsdSingleScrubRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleScrubAsync(string node, int osdid, CreateNodesSingleCephOsdSingleScrubRequest createNodesSingleCephOsdSingleScrubRequest = default(CreateNodesSingleCephOsdSingleScrubRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephOsdSingleScrub
        /// </summary>
        /// <remarks>
        /// Instruct the OSD to scrub.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="createNodesSingleCephOsdSingleScrubRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephOsdSingleScrubWithHttpInfoAsync(string node, int osdid, CreateNodesSingleCephOsdSingleScrubRequest createNodesSingleCephOsdSingleScrubRequest = default(CreateNodesSingleCephOsdSingleScrubRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephPool
        /// </summary>
        /// <remarks>
        /// Create Ceph pool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephPoolAsync(string node, CreateNodesSingleCephPoolRequest createNodesSingleCephPoolRequest = default(CreateNodesSingleCephPoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephPool
        /// </summary>
        /// <remarks>
        /// Create Ceph pool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephPoolWithHttpInfoAsync(string node, CreateNodesSingleCephPoolRequest createNodesSingleCephPoolRequest = default(CreateNodesSingleCephPoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephRestart
        /// </summary>
        /// <remarks>
        /// Restart ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephRestartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephRestartAsync(string node, CreateNodesSingleCephRestartRequest createNodesSingleCephRestartRequest = default(CreateNodesSingleCephRestartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephRestart
        /// </summary>
        /// <remarks>
        /// Restart ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephRestartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephRestartWithHttpInfoAsync(string node, CreateNodesSingleCephRestartRequest createNodesSingleCephRestartRequest = default(CreateNodesSingleCephRestartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephStart
        /// </summary>
        /// <remarks>
        /// Start ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephStartAsync(string node, CreateNodesSingleCephStartRequest createNodesSingleCephStartRequest = default(CreateNodesSingleCephStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephStart
        /// </summary>
        /// <remarks>
        /// Start ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephStartWithHttpInfoAsync(string node, CreateNodesSingleCephStartRequest createNodesSingleCephStartRequest = default(CreateNodesSingleCephStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCephStop
        /// </summary>
        /// <remarks>
        /// Stop ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephStopAsync(string node, CreateNodesSingleCephStopRequest createNodesSingleCephStopRequest = default(CreateNodesSingleCephStopRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCephStop
        /// </summary>
        /// <remarks>
        /// Stop ceph services.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephStopWithHttpInfoAsync(string node, CreateNodesSingleCephStopRequest createNodesSingleCephStopRequest = default(CreateNodesSingleCephStopRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Order a new certificate from ACME-compatible CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCertificatesAcmeCertificateAsync(string node, CreateNodesSingleCertificatesAcmeCertificateRequest createNodesSingleCertificatesAcmeCertificateRequest = default(CreateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Order a new certificate from ACME-compatible CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(string node, CreateNodesSingleCertificatesAcmeCertificateRequest createNodesSingleCertificatesAcmeCertificateRequest = default(CreateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleCertificatesCustom
        /// </summary>
        /// <remarks>
        /// Upload or update custom certificate chain and key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesCustomRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleCertificatesCustom200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleCertificatesCustom200Response> CreateNodesSingleCertificatesCustomAsync(string node, CreateNodesSingleCertificatesCustomRequest createNodesSingleCertificatesCustomRequest = default(CreateNodesSingleCertificatesCustomRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleCertificatesCustom
        /// </summary>
        /// <remarks>
        /// Upload or update custom certificate chain and key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesCustomRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleCertificatesCustom200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleCertificatesCustom200Response>> CreateNodesSingleCertificatesCustomWithHttpInfoAsync(string node, CreateNodesSingleCertificatesCustomRequest createNodesSingleCertificatesCustomRequest = default(CreateNodesSingleCertificatesCustomRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleDisksDirectory
        /// </summary>
        /// <remarks>
        /// Create a Filesystem on an unused disk. Will be mounted under &#39;/mnt/pve/NAME&#39;.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksDirectoryRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksDirectoryAsync(string node, CreateNodesSingleDisksDirectoryRequest createNodesSingleDisksDirectoryRequest = default(CreateNodesSingleDisksDirectoryRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleDisksDirectory
        /// </summary>
        /// <remarks>
        /// Create a Filesystem on an unused disk. Will be mounted under &#39;/mnt/pve/NAME&#39;.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksDirectoryRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksDirectoryWithHttpInfoAsync(string node, CreateNodesSingleDisksDirectoryRequest createNodesSingleDisksDirectoryRequest = default(CreateNodesSingleDisksDirectoryRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleDisksInitgpt
        /// </summary>
        /// <remarks>
        /// Initialize Disk with GPT
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksInitgptRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksInitgptAsync(string node, CreateNodesSingleDisksInitgptRequest createNodesSingleDisksInitgptRequest = default(CreateNodesSingleDisksInitgptRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleDisksInitgpt
        /// </summary>
        /// <remarks>
        /// Initialize Disk with GPT
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksInitgptRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksInitgptWithHttpInfoAsync(string node, CreateNodesSingleDisksInitgptRequest createNodesSingleDisksInitgptRequest = default(CreateNodesSingleDisksInitgptRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleDisksLvm
        /// </summary>
        /// <remarks>
        /// Create an LVM Volume Group
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksLvmAsync(string node, CreateNodesSingleDisksLvmRequest createNodesSingleDisksLvmRequest = default(CreateNodesSingleDisksLvmRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleDisksLvm
        /// </summary>
        /// <remarks>
        /// Create an LVM Volume Group
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksLvmWithHttpInfoAsync(string node, CreateNodesSingleDisksLvmRequest createNodesSingleDisksLvmRequest = default(CreateNodesSingleDisksLvmRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleDisksLvmthin
        /// </summary>
        /// <remarks>
        /// Create an LVM thinpool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmthinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksLvmthinAsync(string node, CreateNodesSingleDisksLvmthinRequest createNodesSingleDisksLvmthinRequest = default(CreateNodesSingleDisksLvmthinRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleDisksLvmthin
        /// </summary>
        /// <remarks>
        /// Create an LVM thinpool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmthinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksLvmthinWithHttpInfoAsync(string node, CreateNodesSingleDisksLvmthinRequest createNodesSingleDisksLvmthinRequest = default(CreateNodesSingleDisksLvmthinRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleDisksZfs
        /// </summary>
        /// <remarks>
        /// Create a ZFS pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksZfsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksZfsAsync(string node, CreateNodesSingleDisksZfsRequest createNodesSingleDisksZfsRequest = default(CreateNodesSingleDisksZfsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleDisksZfs
        /// </summary>
        /// <remarks>
        /// Create a ZFS pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksZfsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksZfsWithHttpInfoAsync(string node, CreateNodesSingleDisksZfsRequest createNodesSingleDisksZfsRequest = default(CreateNodesSingleDisksZfsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleExecute
        /// </summary>
        /// <remarks>
        /// Execute multiple commands in order, root only.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleExecuteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> CreateNodesSingleExecuteAsync(string node, CreateNodesSingleExecuteRequest createNodesSingleExecuteRequest = default(CreateNodesSingleExecuteRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleExecute
        /// </summary>
        /// <remarks>
        /// Execute multiple commands in order, root only.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleExecuteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> CreateNodesSingleExecuteWithHttpInfoAsync(string node, CreateNodesSingleExecuteRequest createNodesSingleExecuteRequest = default(CreateNodesSingleExecuteRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleHosts
        /// </summary>
        /// <remarks>
        /// Write /etc/hosts.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleHostsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleHostsAsync(string node, CreateNodesSingleHostsRequest createNodesSingleHostsRequest = default(CreateNodesSingleHostsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleHosts
        /// </summary>
        /// <remarks>
        /// Write /etc/hosts.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleHostsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleHostsWithHttpInfoAsync(string node, CreateNodesSingleHostsRequest createNodesSingleHostsRequest = default(CreateNodesSingleHostsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxc
        /// </summary>
        /// <remarks>
        /// Create or restore a container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleLxcRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcAsync(string node, CreateNodesSingleLxcRequest createNodesSingleLxcRequest = default(CreateNodesSingleLxcRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxc
        /// </summary>
        /// <remarks>
        /// Create or restore a container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleLxcRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcWithHttpInfoAsync(string node, CreateNodesSingleLxcRequest createNodesSingleLxcRequest = default(CreateNodesSingleLxcRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleClone
        /// </summary>
        /// <remarks>
        /// Create a container clone/copy
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleCloneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleCloneAsync(string node, int vmid, CreateNodesSingleLxcSingleCloneRequest createNodesSingleLxcSingleCloneRequest = default(CreateNodesSingleLxcSingleCloneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleClone
        /// </summary>
        /// <remarks>
        /// Create a container clone/copy
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleCloneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleCloneWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleCloneRequest createNodesSingleLxcSingleCloneRequest = default(CreateNodesSingleLxcSingleCloneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallAliasesAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallAliasesRequest createNodesSingleLxcSingleFirewallAliasesRequest = default(CreateNodesSingleLxcSingleFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleFirewallAliasesWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallAliasesRequest createNodesSingleLxcSingleFirewallAliasesRequest = default(CreateNodesSingleLxcSingleFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpset
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallIpsetAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetRequest createNodesSingleLxcSingleFirewallIpsetRequest = default(CreateNodesSingleLxcSingleFirewallIpsetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpset
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleFirewallIpsetWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetRequest createNodesSingleLxcSingleFirewallIpsetRequest = default(CreateNodesSingleLxcSingleFirewallIpsetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallIpsetSingleAsync(string name, string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetSingleRequest createNodesSingleLxcSingleFirewallIpsetSingleRequest = default(CreateNodesSingleLxcSingleFirewallIpsetSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// Add IP or Network to IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(string name, string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetSingleRequest createNodesSingleLxcSingleFirewallIpsetSingleRequest = default(CreateNodesSingleLxcSingleFirewallIpsetSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallRulesAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallRulesRequest createNodesSingleLxcSingleFirewallRulesRequest = default(CreateNodesSingleLxcSingleFirewallRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleFirewallRulesWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallRulesRequest createNodesSingleLxcSingleFirewallRulesRequest = default(CreateNodesSingleLxcSingleFirewallRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleMigrate
        /// </summary>
        /// <remarks>
        /// Migrate the container to another node. Creates a new migration task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleMigrateAsync(string node, int vmid, CreateNodesSingleLxcSingleMigrateRequest createNodesSingleLxcSingleMigrateRequest = default(CreateNodesSingleLxcSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleMigrate
        /// </summary>
        /// <remarks>
        /// Migrate the container to another node. Creates a new migration task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleLxcSingleMigrateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleMigrateRequest createNodesSingleLxcSingleMigrateRequest = default(CreateNodesSingleLxcSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleMovevolume
        /// </summary>
        /// <remarks>
        /// Move a rootfs-/mp-volume to a different storage or to a different container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMovevolumeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleMovevolumeAsync(string node, int vmid, CreateNodesSingleLxcSingleMovevolumeRequest createNodesSingleLxcSingleMovevolumeRequest = default(CreateNodesSingleLxcSingleMovevolumeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleMovevolume
        /// </summary>
        /// <remarks>
        /// Move a rootfs-/mp-volume to a different storage or to a different container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMovevolumeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleMovevolumeWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleMovevolumeRequest createNodesSingleLxcSingleMovevolumeRequest = default(CreateNodesSingleLxcSingleMovevolumeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleMtunnel
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint - only for internal use by CT migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleMtunnelAsync(string node, int vmid, CreateNodesSingleLxcSingleMtunnelRequest createNodesSingleLxcSingleMtunnelRequest = default(CreateNodesSingleLxcSingleMtunnelRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleMtunnel
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint - only for internal use by CT migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleMtunnelWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleMtunnelRequest createNodesSingleLxcSingleMtunnelRequest = default(CreateNodesSingleLxcSingleMtunnelRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleRemotemigrate
        /// </summary>
        /// <remarks>
        /// Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleRemotemigrateAsync(string node, int vmid, CreateNodesSingleLxcSingleRemotemigrateRequest createNodesSingleLxcSingleRemotemigrateRequest = default(CreateNodesSingleLxcSingleRemotemigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleRemotemigrate
        /// </summary>
        /// <remarks>
        /// Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleLxcSingleRemotemigrateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleRemotemigrateRequest createNodesSingleLxcSingleRemotemigrateRequest = default(CreateNodesSingleLxcSingleRemotemigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleSnapshot
        /// </summary>
        /// <remarks>
        /// Snapshot a container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleSnapshotAsync(string node, int vmid, CreateNodesSingleLxcSingleSnapshotRequest createNodesSingleLxcSingleSnapshotRequest = default(CreateNodesSingleLxcSingleSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleSnapshot
        /// </summary>
        /// <remarks>
        /// Snapshot a container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleLxcSingleSnapshotWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleSnapshotRequest createNodesSingleLxcSingleSnapshotRequest = default(CreateNodesSingleLxcSingleSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleSnapshotSingleRollback
        /// </summary>
        /// <remarks>
        /// Rollback LXC state to specified snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotSingleRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleSnapshotSingleRollbackAsync(string node, string snapname, int vmid, CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest createNodesSingleLxcSingleSnapshotSingleRollbackRequest = default(CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleSnapshotSingleRollback
        /// </summary>
        /// <remarks>
        /// Rollback LXC state to specified snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotSingleRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleLxcSingleSnapshotSingleRollbackWithHttpInfoAsync(string node, string snapname, int vmid, CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest createNodesSingleLxcSingleSnapshotSingleRollbackRequest = default(CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleSpiceproxy
        /// </summary>
        /// <remarks>
        /// Returns a SPICE configuration to connect to the CT.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleLxcSingleSpiceproxyAsync(string node, int vmid, CreateNodesSingleLxcSingleSpiceproxyRequest createNodesSingleLxcSingleSpiceproxyRequest = default(CreateNodesSingleLxcSingleSpiceproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleSpiceproxy
        /// </summary>
        /// <remarks>
        /// Returns a SPICE configuration to connect to the CT.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleSpiceproxy200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response>> CreateNodesSingleLxcSingleSpiceproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleSpiceproxyRequest createNodesSingleLxcSingleSpiceproxyRequest = default(CreateNodesSingleLxcSingleSpiceproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleStatusReboot
        /// </summary>
        /// <remarks>
        /// Reboot the container by shutting it down, and starting it again. Applies pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusRebootRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusRebootAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusRebootRequest createNodesSingleLxcSingleStatusRebootRequest = default(CreateNodesSingleLxcSingleStatusRebootRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleStatusReboot
        /// </summary>
        /// <remarks>
        /// Reboot the container by shutting it down, and starting it again. Applies pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusRebootRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusRebootWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusRebootRequest createNodesSingleLxcSingleStatusRebootRequest = default(CreateNodesSingleLxcSingleStatusRebootRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleStatusResume
        /// </summary>
        /// <remarks>
        /// Resume the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusResumeAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleStatusResume
        /// </summary>
        /// <remarks>
        /// Resume the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusResumeWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleStatusShutdown
        /// </summary>
        /// <remarks>
        /// Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusShutdownAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusShutdownRequest createNodesSingleLxcSingleStatusShutdownRequest = default(CreateNodesSingleLxcSingleStatusShutdownRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleStatusShutdown
        /// </summary>
        /// <remarks>
        /// Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusShutdownWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusShutdownRequest createNodesSingleLxcSingleStatusShutdownRequest = default(CreateNodesSingleLxcSingleStatusShutdownRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleStatusStart
        /// </summary>
        /// <remarks>
        /// Start the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusStartAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusStartRequest createNodesSingleLxcSingleStatusStartRequest = default(CreateNodesSingleLxcSingleStatusStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleStatusStart
        /// </summary>
        /// <remarks>
        /// Start the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusStartWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusStartRequest createNodesSingleLxcSingleStatusStartRequest = default(CreateNodesSingleLxcSingleStatusStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleStatusStop
        /// </summary>
        /// <remarks>
        /// Stop the container. This will abruptly stop all processes running in the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusStopAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusStopRequest createNodesSingleLxcSingleStatusStopRequest = default(CreateNodesSingleLxcSingleStatusStopRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleStatusStop
        /// </summary>
        /// <remarks>
        /// Stop the container. This will abruptly stop all processes running in the container.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusStopWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusStopRequest createNodesSingleLxcSingleStatusStopRequest = default(CreateNodesSingleLxcSingleStatusStopRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleStatusSuspend
        /// </summary>
        /// <remarks>
        /// Suspend the container. This is experimental.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusSuspendAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleStatusSuspend
        /// </summary>
        /// <remarks>
        /// Suspend the container. This is experimental.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusSuspendWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleTemplate
        /// </summary>
        /// <remarks>
        /// Create a Template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleTemplateAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleTemplate
        /// </summary>
        /// <remarks>
        /// Create a Template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleTemplateWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP proxy connection.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleTermproxyAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP proxy connection.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleTermproxyWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleLxcSingleVncproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP VNC proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleVncproxyAsync(string node, int vmid, CreateNodesSingleLxcSingleVncproxyRequest createNodesSingleLxcSingleVncproxyRequest = default(CreateNodesSingleLxcSingleVncproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleLxcSingleVncproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP VNC proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleVncproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleVncproxyRequest createNodesSingleLxcSingleVncproxyRequest = default(CreateNodesSingleLxcSingleVncproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleMigrateall
        /// </summary>
        /// <remarks>
        /// Migrate all VMs and Containers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleMigrateallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleMigrateallAsync(string node, CreateNodesSingleMigrateallRequest createNodesSingleMigrateallRequest = default(CreateNodesSingleMigrateallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleMigrateall
        /// </summary>
        /// <remarks>
        /// Migrate all VMs and Containers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleMigrateallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleMigrateallWithHttpInfoAsync(string node, CreateNodesSingleMigrateallRequest createNodesSingleMigrateallRequest = default(CreateNodesSingleMigrateallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Create network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleNetworkAsync(string node, CreateNodesSingleNetworkRequest createNodesSingleNetworkRequest = default(CreateNodesSingleNetworkRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Create network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleNetworkWithHttpInfoAsync(string node, CreateNodesSingleNetworkRequest createNodesSingleNetworkRequest = default(CreateNodesSingleNetworkRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgent
        /// </summary>
        /// <remarks>
        /// Execute QEMU Guest Agent commands.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentRequest createNodesSingleQemuSingleAgentRequest = default(CreateNodesSingleQemuSingleAgentRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgent
        /// </summary>
        /// <remarks>
        /// Execute QEMU Guest Agent commands.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentRequest createNodesSingleQemuSingleAgentRequest = default(CreateNodesSingleQemuSingleAgentRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentExec
        /// </summary>
        /// <remarks>
        /// Executes the given command in the vm via the guest-agent and returns an object with the pid.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentExecRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgentExec200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgentExec200Response> CreateNodesSingleQemuSingleAgentExecAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentExecRequest createNodesSingleQemuSingleAgentExecRequest = default(CreateNodesSingleQemuSingleAgentExecRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentExec
        /// </summary>
        /// <remarks>
        /// Executes the given command in the vm via the guest-agent and returns an object with the pid.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentExecRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgentExec200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgentExec200Response>> CreateNodesSingleQemuSingleAgentExecWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentExecRequest createNodesSingleQemuSingleAgentExecRequest = default(CreateNodesSingleQemuSingleAgentExecRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentFilewrite
        /// </summary>
        /// <remarks>
        /// Writes the given file via guest agent.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentFilewriteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleAgentFilewriteAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentFilewriteRequest createNodesSingleQemuSingleAgentFilewriteRequest = default(CreateNodesSingleQemuSingleAgentFilewriteRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentFilewrite
        /// </summary>
        /// <remarks>
        /// Writes the given file via guest agent.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentFilewriteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleAgentFilewriteWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentFilewriteRequest createNodesSingleQemuSingleAgentFilewriteRequest = default(CreateNodesSingleQemuSingleAgentFilewriteRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezefreeze
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-freeze.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezefreezeAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezefreeze
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-freeze.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentFsfreezefreezeWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezestatus
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezestatusAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezestatus
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentFsfreezestatusWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezethaw
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-thaw.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezethawAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezethaw
        /// </summary>
        /// <remarks>
        /// Execute fsfreeze-thaw.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentFsfreezethawWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentFstrim
        /// </summary>
        /// <remarks>
        /// Execute fstrim.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFstrimAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentFstrim
        /// </summary>
        /// <remarks>
        /// Execute fstrim.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentFstrimWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentPing
        /// </summary>
        /// <remarks>
        /// Execute ping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentPingAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentPing
        /// </summary>
        /// <remarks>
        /// Execute ping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentPingWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentSetuserpassword
        /// </summary>
        /// <remarks>
        /// Sets the password for the given user to the given password
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentSetuserpasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSetuserpasswordAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentSetuserpasswordRequest createNodesSingleQemuSingleAgentSetuserpasswordRequest = default(CreateNodesSingleQemuSingleAgentSetuserpasswordRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentSetuserpassword
        /// </summary>
        /// <remarks>
        /// Sets the password for the given user to the given password
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentSetuserpasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentSetuserpasswordWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentSetuserpasswordRequest createNodesSingleQemuSingleAgentSetuserpasswordRequest = default(CreateNodesSingleQemuSingleAgentSetuserpasswordRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentShutdown
        /// </summary>
        /// <remarks>
        /// Execute shutdown.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentShutdownAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentShutdown
        /// </summary>
        /// <remarks>
        /// Execute shutdown.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentShutdownWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspenddisk
        /// </summary>
        /// <remarks>
        /// Execute suspend-disk.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspenddiskAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspenddisk
        /// </summary>
        /// <remarks>
        /// Execute suspend-disk.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentSuspenddiskWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendhybrid
        /// </summary>
        /// <remarks>
        /// Execute suspend-hybrid.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspendhybridAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendhybrid
        /// </summary>
        /// <remarks>
        /// Execute suspend-hybrid.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentSuspendhybridWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendram
        /// </summary>
        /// <remarks>
        /// Execute suspend-ram.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspendramAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendram
        /// </summary>
        /// <remarks>
        /// Execute suspend-ram.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentSuspendramWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleDbusvmstate
        /// </summary>
        /// <remarks>
        /// Control the dbus-vmstate helper for a given running VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleDbusvmstateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleDbusvmstateAsync(string node, int vmid, CreateNodesSingleQemuSingleDbusvmstateRequest createNodesSingleQemuSingleDbusvmstateRequest = default(CreateNodesSingleQemuSingleDbusvmstateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleDbusvmstate
        /// </summary>
        /// <remarks>
        /// Control the dbus-vmstate helper for a given running VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleDbusvmstateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleDbusvmstateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleDbusvmstateRequest createNodesSingleQemuSingleDbusvmstateRequest = default(CreateNodesSingleQemuSingleDbusvmstateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleFirewallAliasesAsync(string node, int vmid, CreateNodesSingleQemuSingleFirewallAliasesRequest createNodesSingleQemuSingleFirewallAliasesRequest = default(CreateNodesSingleQemuSingleFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// Create IP or Network Alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleFirewallAliasesWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleFirewallAliasesRequest createNodesSingleQemuSingleFirewallAliasesRequest = default(CreateNodesSingleQemuSingleFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleMigrate
        /// </summary>
        /// <remarks>
        /// Migrate virtual machine. Creates a new migration task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleMigrateAsync(string node, int vmid, CreateNodesSingleQemuSingleMigrateRequest createNodesSingleQemuSingleMigrateRequest = default(CreateNodesSingleQemuSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleMigrate
        /// </summary>
        /// <remarks>
        /// Migrate virtual machine. Creates a new migration task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleQemuSingleMigrateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleMigrateRequest createNodesSingleQemuSingleMigrateRequest = default(CreateNodesSingleQemuSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleMonitor
        /// </summary>
        /// <remarks>
        /// Execute QEMU monitor commands.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMonitorRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleMonitorAsync(string node, int vmid, CreateNodesSingleQemuSingleMonitorRequest createNodesSingleQemuSingleMonitorRequest = default(CreateNodesSingleQemuSingleMonitorRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleMonitor
        /// </summary>
        /// <remarks>
        /// Execute QEMU monitor commands.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMonitorRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleMonitorWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleMonitorRequest createNodesSingleQemuSingleMonitorRequest = default(CreateNodesSingleQemuSingleMonitorRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleMovedisk
        /// </summary>
        /// <remarks>
        /// Move volume to different storage or to a different VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMovediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleMovediskAsync(string node, int vmid, CreateNodesSingleQemuSingleMovediskRequest createNodesSingleQemuSingleMovediskRequest = default(CreateNodesSingleQemuSingleMovediskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleMovedisk
        /// </summary>
        /// <remarks>
        /// Move volume to different storage or to a different VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMovediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleQemuSingleMovediskWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleMovediskRequest createNodesSingleQemuSingleMovediskRequest = default(CreateNodesSingleQemuSingleMovediskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleMtunnel
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleMtunnelAsync(string node, int vmid, CreateNodesSingleQemuSingleMtunnelRequest createNodesSingleQemuSingleMtunnelRequest = default(CreateNodesSingleQemuSingleMtunnelRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleMtunnel
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleMtunnelWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleMtunnelRequest createNodesSingleQemuSingleMtunnelRequest = default(CreateNodesSingleQemuSingleMtunnelRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleRemotemigrate
        /// </summary>
        /// <remarks>
        /// Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleRemotemigrateAsync(string node, int vmid, CreateNodesSingleQemuSingleRemotemigrateRequest createNodesSingleQemuSingleRemotemigrateRequest = default(CreateNodesSingleQemuSingleRemotemigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleRemotemigrate
        /// </summary>
        /// <remarks>
        /// Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleQemuSingleRemotemigrateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleRemotemigrateRequest createNodesSingleQemuSingleRemotemigrateRequest = default(CreateNodesSingleQemuSingleRemotemigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleSpiceproxy
        /// </summary>
        /// <remarks>
        /// Returns a SPICE configuration to connect to the VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleQemuSingleSpiceproxyAsync(string node, int vmid, CreateNodesSingleQemuSingleSpiceproxyRequest createNodesSingleQemuSingleSpiceproxyRequest = default(CreateNodesSingleQemuSingleSpiceproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleSpiceproxy
        /// </summary>
        /// <remarks>
        /// Returns a SPICE configuration to connect to the VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleSpiceproxy200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response>> CreateNodesSingleQemuSingleSpiceproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleSpiceproxyRequest createNodesSingleQemuSingleSpiceproxyRequest = default(CreateNodesSingleQemuSingleSpiceproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleTemplate
        /// </summary>
        /// <remarks>
        /// Create a Template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTemplateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleTemplateAsync(string node, int vmid, CreateNodesSingleQemuSingleTemplateRequest createNodesSingleQemuSingleTemplateRequest = default(CreateNodesSingleQemuSingleTemplateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleTemplate
        /// </summary>
        /// <remarks>
        /// Create a Template.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTemplateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleQemuSingleTemplateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleTemplateRequest createNodesSingleQemuSingleTemplateRequest = default(CreateNodesSingleQemuSingleTemplateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleTermproxyAsync(string node, int vmid, CreateNodesSingleQemuSingleTermproxyRequest createNodesSingleQemuSingleTermproxyRequest = default(CreateNodesSingleQemuSingleTermproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleTermproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleTermproxyRequest createNodesSingleQemuSingleTermproxyRequest = default(CreateNodesSingleQemuSingleTermproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleQemuSingleVncproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP VNC proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleVncproxyAsync(string node, int vmid, CreateNodesSingleQemuSingleVncproxyRequest createNodesSingleQemuSingleVncproxyRequest = default(CreateNodesSingleQemuSingleVncproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleQemuSingleVncproxy
        /// </summary>
        /// <remarks>
        /// Creates a TCP VNC proxy connections.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleVncproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleVncproxyRequest createNodesSingleQemuSingleVncproxyRequest = default(CreateNodesSingleQemuSingleVncproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleReplicationSingleSchedulenow
        /// </summary>
        /// <remarks>
        /// Schedule replication job to start as soon as possible.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleReplicationSingleSchedulenowAsync(string id, string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleReplicationSingleSchedulenow
        /// </summary>
        /// <remarks>
        /// Schedule replication job to start as soon as possible.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleReplicationSingleSchedulenowWithHttpInfoAsync(string id, string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleServicesSingleReload
        /// </summary>
        /// <remarks>
        /// Reload service. Falls back to restart if service cannot be reloaded.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleServicesSingleReloadAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleServicesSingleReload
        /// </summary>
        /// <remarks>
        /// Reload service. Falls back to restart if service cannot be reloaded.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleServicesSingleReloadWithHttpInfoAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleServicesSingleRestart
        /// </summary>
        /// <remarks>
        /// Hard restart service. Use reload if you want to reduce interruptions.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleServicesSingleRestartAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleServicesSingleRestart
        /// </summary>
        /// <remarks>
        /// Hard restart service. Use reload if you want to reduce interruptions.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleServicesSingleRestartWithHttpInfoAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleServicesSingleStart
        /// </summary>
        /// <remarks>
        /// Start service.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleServicesSingleStartAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleServicesSingleStart
        /// </summary>
        /// <remarks>
        /// Start service.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleServicesSingleStartWithHttpInfoAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleServicesSingleStop
        /// </summary>
        /// <remarks>
        /// Stop service.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleServicesSingleStopAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleServicesSingleStop
        /// </summary>
        /// <remarks>
        /// Stop service.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleServicesSingleStopWithHttpInfoAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleSpiceshell
        /// </summary>
        /// <remarks>
        /// Creates a SPICE shell.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSpiceshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleSpiceshellAsync(string node, CreateNodesSingleSpiceshellRequest createNodesSingleSpiceshellRequest = default(CreateNodesSingleSpiceshellRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleSpiceshell
        /// </summary>
        /// <remarks>
        /// Creates a SPICE shell.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSpiceshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleSpiceproxy200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response>> CreateNodesSingleSpiceshellWithHttpInfoAsync(string node, CreateNodesSingleSpiceshellRequest createNodesSingleSpiceshellRequest = default(CreateNodesSingleSpiceshellRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleStartall
        /// </summary>
        /// <remarks>
        /// Start all VMs and containers located on this node (by default only those with onboot&#x3D;1).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStartallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStartallAsync(string node, CreateNodesSingleStartallRequest createNodesSingleStartallRequest = default(CreateNodesSingleStartallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleStartall
        /// </summary>
        /// <remarks>
        /// Start all VMs and containers located on this node (by default only those with onboot&#x3D;1).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStartallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStartallWithHttpInfoAsync(string node, CreateNodesSingleStartallRequest createNodesSingleStartallRequest = default(CreateNodesSingleStartallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleStatus
        /// </summary>
        /// <remarks>
        /// Reboot or shutdown a node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStatusRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStatusAsync(string node, CreateNodesSingleStatusRequest createNodesSingleStatusRequest = default(CreateNodesSingleStatusRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleStatus
        /// </summary>
        /// <remarks>
        /// Reboot or shutdown a node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStatusRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStatusWithHttpInfoAsync(string node, CreateNodesSingleStatusRequest createNodesSingleStatusRequest = default(CreateNodesSingleStatusRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleStopall
        /// </summary>
        /// <remarks>
        /// Stop all VMs and Containers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStopallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStopallAsync(string node, CreateNodesSingleStopallRequest createNodesSingleStopallRequest = default(CreateNodesSingleStopallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleStopall
        /// </summary>
        /// <remarks>
        /// Stop all VMs and Containers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStopallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStopallWithHttpInfoAsync(string node, CreateNodesSingleStopallRequest createNodesSingleStopallRequest = default(CreateNodesSingleStopallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleStorageSingleContent
        /// </summary>
        /// <remarks>
        /// Allocate disk images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleContentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleStorageSingleContent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleStorageSingleContent200Response> CreateNodesSingleStorageSingleContentAsync(string node, string storage, CreateNodesSingleStorageSingleContentRequest createNodesSingleStorageSingleContentRequest = default(CreateNodesSingleStorageSingleContentRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleStorageSingleContent
        /// </summary>
        /// <remarks>
        /// Allocate disk images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleContentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleStorageSingleContent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleStorageSingleContent200Response>> CreateNodesSingleStorageSingleContentWithHttpInfoAsync(string node, string storage, CreateNodesSingleStorageSingleContentRequest createNodesSingleStorageSingleContentRequest = default(CreateNodesSingleStorageSingleContentRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Copy a volume. This is experimental code - do not use.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="createNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStorageSingleContentSingleAsync(string node, string storage, string volume, CreateNodesSingleStorageSingleContentSingleRequest createNodesSingleStorageSingleContentSingleRequest = default(CreateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Copy a volume. This is experimental code - do not use.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="createNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStorageSingleContentSingleWithHttpInfoAsync(string node, string storage, string volume, CreateNodesSingleStorageSingleContentSingleRequest createNodesSingleStorageSingleContentSingleRequest = default(CreateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleStorageSingleDownloadurl
        /// </summary>
        /// <remarks>
        /// Download templates, ISO images, OVAs and VM images by using an URL.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleDownloadurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStorageSingleDownloadurlAsync(string node, string storage, CreateNodesSingleStorageSingleDownloadurlRequest createNodesSingleStorageSingleDownloadurlRequest = default(CreateNodesSingleStorageSingleDownloadurlRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleStorageSingleDownloadurl
        /// </summary>
        /// <remarks>
        /// Download templates, ISO images, OVAs and VM images by using an URL.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleDownloadurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStorageSingleDownloadurlWithHttpInfoAsync(string node, string storage, CreateNodesSingleStorageSingleDownloadurlRequest createNodesSingleStorageSingleDownloadurlRequest = default(CreateNodesSingleStorageSingleDownloadurlRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleStorageSingleOciregistrypull
        /// </summary>
        /// <remarks>
        /// Pull an OCI image from a registry.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleOciregistrypullRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStorageSingleOciregistrypullAsync(string node, string storage, CreateNodesSingleStorageSingleOciregistrypullRequest createNodesSingleStorageSingleOciregistrypullRequest = default(CreateNodesSingleStorageSingleOciregistrypullRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleStorageSingleOciregistrypull
        /// </summary>
        /// <remarks>
        /// Pull an OCI image from a registry.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleOciregistrypullRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStorageSingleOciregistrypullWithHttpInfoAsync(string node, string storage, CreateNodesSingleStorageSingleOciregistrypullRequest createNodesSingleStorageSingleOciregistrypullRequest = default(CreateNodesSingleStorageSingleOciregistrypullRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleStorageSingleUpload
        /// </summary>
        /// <remarks>
        /// Upload templates, ISO images, OVAs and VM images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleUploadRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStorageSingleUploadAsync(string node, string storage, CreateNodesSingleStorageSingleUploadRequest createNodesSingleStorageSingleUploadRequest = default(CreateNodesSingleStorageSingleUploadRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleStorageSingleUpload
        /// </summary>
        /// <remarks>
        /// Upload templates, ISO images, OVAs and VM images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleUploadRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStorageSingleUploadWithHttpInfoAsync(string node, string storage, CreateNodesSingleStorageSingleUploadRequest createNodesSingleStorageSingleUploadRequest = default(CreateNodesSingleStorageSingleUploadRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Update subscription info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleSubscriptionAsync(string node, CreateNodesSingleSubscriptionRequest createNodesSingleSubscriptionRequest = default(CreateNodesSingleSubscriptionRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Update subscription info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleSubscriptionWithHttpInfoAsync(string node, CreateNodesSingleSubscriptionRequest createNodesSingleSubscriptionRequest = default(CreateNodesSingleSubscriptionRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleSuspendall
        /// </summary>
        /// <remarks>
        /// Suspend all VMs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSuspendallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleSuspendallAsync(string node, CreateNodesSingleSuspendallRequest createNodesSingleSuspendallRequest = default(CreateNodesSingleSuspendallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleSuspendall
        /// </summary>
        /// <remarks>
        /// Suspend all VMs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSuspendallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleSuspendallWithHttpInfoAsync(string node, CreateNodesSingleSuspendallRequest createNodesSingleSuspendallRequest = default(CreateNodesSingleSuspendallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a VNC Shell proxy.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleTermproxyAsync(string node, CreateNodesSingleTermproxyRequest createNodesSingleTermproxyRequest = default(CreateNodesSingleTermproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleTermproxy
        /// </summary>
        /// <remarks>
        /// Creates a VNC Shell proxy.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleTermproxyWithHttpInfoAsync(string node, CreateNodesSingleTermproxyRequest createNodesSingleTermproxyRequest = default(CreateNodesSingleTermproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleVncshell
        /// </summary>
        /// <remarks>
        /// Creates a VNC Shell proxy.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVncshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleVncshellAsync(string node, CreateNodesSingleVncshellRequest createNodesSingleVncshellRequest = default(CreateNodesSingleVncshellRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleVncshell
        /// </summary>
        /// <remarks>
        /// Creates a VNC Shell proxy.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVncshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleVncshellWithHttpInfoAsync(string node, CreateNodesSingleVncshellRequest createNodesSingleVncshellRequest = default(CreateNodesSingleVncshellRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleVzdump
        /// </summary>
        /// <remarks>
        /// Create backup.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVzdumpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleVzdumpAsync(string node, CreateNodesSingleVzdumpRequest createNodesSingleVzdumpRequest = default(CreateNodesSingleVzdumpRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleVzdump
        /// </summary>
        /// <remarks>
        /// Create backup.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVzdumpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleVzdumpWithHttpInfoAsync(string node, CreateNodesSingleVzdumpRequest createNodesSingleVzdumpRequest = default(CreateNodesSingleVzdumpRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createNodesSingleWakeonlan
        /// </summary>
        /// <remarks>
        /// Try to wake a node via &#39;wake on LAN&#39; network packet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleWakeonlan200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleWakeonlan200Response> CreateNodesSingleWakeonlanAsync(string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createNodesSingleWakeonlan
        /// </summary>
        /// <remarks>
        /// Try to wake a node via &#39;wake on LAN&#39; network packet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleWakeonlan200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleWakeonlan200Response>> CreateNodesSingleWakeonlanWithHttpInfoAsync(string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createPool
        /// </summary>
        /// <remarks>
        /// Create new pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreatePoolAsync(CreatePoolRequest createPoolRequest = default(CreatePoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createPool
        /// </summary>
        /// <remarks>
        /// Create new pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreatePoolWithHttpInfoAsync(CreatePoolRequest createPoolRequest = default(CreatePoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createStorage
        /// </summary>
        /// <remarks>
        /// Create a new storage.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createStorageRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateStorage200Response</returns>
        System.Threading.Tasks.Task<CreateStorage200Response> CreateStorageAsync(CreateStorageRequest createStorageRequest = default(CreateStorageRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createStorage
        /// </summary>
        /// <remarks>
        /// Create a new storage.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createStorageRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateStorage200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateStorage200Response>> CreateStorageWithHttpInfoAsync(CreateStorageRequest createStorageRequest = default(CreateStorageRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createVM
        /// </summary>
        /// <remarks>
        /// Create or restore a virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateVMAsync(string node, CreateVMRequest createVMRequest = default(CreateVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createVM
        /// </summary>
        /// <remarks>
        /// Create or restore a virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateVMWithHttpInfoAsync(string node, CreateVMRequest createVMRequest = default(CreateVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateVMFirewallIPSetAsync(string node, int vmid, CreateVMFirewallIPSetRequest createVMFirewallIPSetRequest = default(CreateVMFirewallIPSetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Create new IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateVMFirewallIPSetWithHttpInfoAsync(string node, int vmid, CreateVMFirewallIPSetRequest createVMFirewallIPSetRequest = default(CreateVMFirewallIPSetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateVMFirewallRuleAsync(string node, int vmid, CreateVMFirewallRuleRequest createVMFirewallRuleRequest = default(CreateVMFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Create new rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> CreateVMFirewallRuleWithHttpInfoAsync(string node, int vmid, CreateVMFirewallRuleRequest createVMFirewallRuleRequest = default(CreateVMFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// createVMSnapshot
        /// </summary>
        /// <remarks>
        /// Snapshot a VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateVMSnapshotAsync(string node, int vmid, CreateVMSnapshotRequest createVMSnapshotRequest = default(CreateVMSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// createVMSnapshot
        /// </summary>
        /// <remarks>
        /// Snapshot a VM.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateVMSnapshotWithHttpInfoAsync(string node, int vmid, CreateVMSnapshotRequest createVMSnapshotRequest = default(CreateVMSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Delete an authentication server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessDomainsSingleAsync(string realm, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Delete an authentication server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteAccessDomainsSingleWithHttpInfoAsync(string realm, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Delete group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessGroupsSingleAsync(string groupid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Delete group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteAccessGroupsSingleWithHttpInfoAsync(string groupid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Delete role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessRolesSingleAsync(string roleid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Delete role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteAccessRolesSingleWithHttpInfoAsync(string roleid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Delete a TFA entry by ID.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessTfaSingleSingleAsync(string id, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Delete a TFA entry by ID.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteAccessTfaSingleSingleWithHttpInfoAsync(string id, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Delete user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessUsersSingleAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Delete user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteAccessUsersSingleWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Remove API token for a specific user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessUsersSingleTokenSingleAsync(string tokenid, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Remove API token for a specific user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteAccessUsersSingleTokenSingleWithHttpInfoAsync(string tokenid, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Deactivate existing ACME account at CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterAcmeAccountSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Deactivate existing ACME account at CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterAcmeAccountSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Delete ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterAcmePluginsSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Delete ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterAcmePluginsSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Delete vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterBackupSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Delete vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterBackupSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterConfigNodesSingle
        /// </summary>
        /// <remarks>
        /// Removes a node from the cluster configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterConfigNodesSingleAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterConfigNodesSingle
        /// </summary>
        /// <remarks>
        /// Removes a node from the cluster configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterConfigNodesSingleWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterFirewallAliasesSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterFirewallAliasesSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterFirewallGroup
        /// </summary>
        /// <remarks>
        /// Delete security group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterFirewallGroupAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterFirewallGroup
        /// </summary>
        /// <remarks>
        /// Delete security group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterFirewallGroupWithHttpInfoAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterFirewallIPSetAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterFirewallIPSetWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Delete ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterHaGroupsSingleAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Delete ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterHaGroupsSingleWithHttpInfoAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Delete resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterHaResourcesSingleAsync(string sid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Delete resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterHaResourcesSingleWithHttpInfoAsync(string sid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterHaRulesSingleAsync(string rule, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterHaRulesSingleWithHttpInfoAsync(string rule, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Delete realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterJobsRealmsyncSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Delete realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterJobsRealmsyncSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Remove directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterMappingDirSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Remove directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterMappingDirSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Remove Hardware Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterMappingPciSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Remove Hardware Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterMappingPciSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Remove Hardware Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterMappingUsbSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Remove Hardware Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterMappingUsbSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Remove Metric server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterMetricsServerSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Remove Metric server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterMetricsServerSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Remove gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsGotifySingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Remove gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Remove sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsSendmailSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Remove sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Remove smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsSmtpSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Remove smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Remove webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsWebhookSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Remove webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Remove matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsMatchersSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Remove matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsMatchersSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Mark replication job for removal.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterReplicationSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Mark replication job for removal.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterReplicationSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSDNController
        /// </summary>
        /// <remarks>
        /// Delete sdn controller object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSDNControllerAsync(string controller, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSDNController
        /// </summary>
        /// <remarks>
        /// Delete sdn controller object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSDNControllerWithHttpInfoAsync(string controller, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Delete sdn vnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSDNVnetAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Delete sdn vnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSDNVnetWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Delete sdn zone object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSDNZoneAsync(string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Delete sdn zone object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSDNZoneWithHttpInfoAsync(string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn dns object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnDnsSingleAsync(string dns, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn dns object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnDnsSingleWithHttpInfoAsync(string dns, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Add a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnFabricsFabricSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Add a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnFabricsFabricSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Add a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnFabricsNodeSingleSingleAsync(string fabricId, string nodeId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Add a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(string fabricId, string nodeId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn ipam object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnIpamsSingleAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn ipam object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnIpamsSingleWithHttpInfoAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSdnLock
        /// </summary>
        /// <remarks>
        /// Release global lock for SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnLockAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSdnLock
        /// </summary>
        /// <remarks>
        /// Release global lock for SDN configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnLockWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleFirewallRulesSingleAsync(int pos, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(int pos, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Delete IP Mappings in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleIpsAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Delete IP Mappings in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnVnetsSingleIpsWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn subnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleSubnetsSingleAsync(string subnet, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Delete sdn subnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(string subnet, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodeFirewallRuleAsync(string node, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodeFirewallRuleWithHttpInfoAsync(string node, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleCephMdsSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Metadata Server
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephMdsSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleCephMdsSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Metadata Server
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephMdsSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleCephMgrSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Manager.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephMgrSingleAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleCephMgrSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Manager.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephMgrSingleWithHttpInfoAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleCephMonSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Monitor and Manager.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephMonSingleAsync(string monid, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleCephMonSingle
        /// </summary>
        /// <remarks>
        /// Destroy Ceph Monitor and Manager.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephMonSingleWithHttpInfoAsync(string monid, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleCephOsdSingle
        /// </summary>
        /// <remarks>
        /// Destroy OSD
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephOsdSingleAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleCephOsdSingle
        /// </summary>
        /// <remarks>
        /// Destroy OSD
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephOsdSingleWithHttpInfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Destroy pool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephPoolSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Destroy pool
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephPoolSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Revoke existing certificate from CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCertificatesAcmeCertificateAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Revoke existing certificate from CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleCertificatesCustom
        /// </summary>
        /// <remarks>
        /// DELETE custom certificate chain and key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCertificatesCustomAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleCertificatesCustom
        /// </summary>
        /// <remarks>
        /// DELETE custom certificate chain and key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCertificatesCustomWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleDisksDirectorySingle
        /// </summary>
        /// <remarks>
        /// Unmounts the storage and removes the mount unit.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleDisksDirectorySingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleDisksDirectorySingle
        /// </summary>
        /// <remarks>
        /// Unmounts the storage and removes the mount unit.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleDisksDirectorySingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleDisksLvmSingle
        /// </summary>
        /// <remarks>
        /// Remove an LVM Volume Group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleDisksLvmSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleDisksLvmSingle
        /// </summary>
        /// <remarks>
        /// Remove an LVM Volume Group.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleDisksLvmSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleDisksLvmthinSingle
        /// </summary>
        /// <remarks>
        /// Remove an LVM thin pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleDisksLvmthinSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleDisksLvmthinSingle
        /// </summary>
        /// <remarks>
        /// Remove an LVM thin pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleDisksLvmthinSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleDisksZfsSingle
        /// </summary>
        /// <remarks>
        /// Destroy a ZFS pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleDisksZfsSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleDisksZfsSingle
        /// </summary>
        /// <remarks>
        /// Destroy a ZFS pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleDisksZfsSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleLxcSingle
        /// </summary>
        /// <remarks>
        /// Destroy the container (also delete all uses files).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleLxcSingle
        /// </summary>
        /// <remarks>
        /// Destroy the container (also delete all uses files).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallAliasesSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallIpsetSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallRulesSingleAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <remarks>
        /// Delete a LXC snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> DeleteNodesSingleLxcSingleSnapshotSingleAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <remarks>
        /// Delete a LXC snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> DeleteNodesSingleLxcSingleSnapshotSingleWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Revert network configuration changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleNetworkAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Revert network configuration changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleNetworkWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Delete network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleNetworkSingleAsync(string iface, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Delete network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleNetworkSingleWithHttpInfoAsync(string iface, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleQemuSingleFirewallAliasesSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Remove IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Delete volume
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleStorageSingleContentSingleAsync(string node, string storage, string volume, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Delete volume
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleStorageSingleContentSingleWithHttpInfoAsync(string node, string storage, string volume, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleStorageSinglePrunebackups
        /// </summary>
        /// <remarks>
        /// Prune backups. Only those using the standard naming scheme are considered.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleStorageSinglePrunebackupsAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleStorageSinglePrunebackups
        /// </summary>
        /// <remarks>
        /// Prune backups. Only those using the standard naming scheme are considered.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleStorageSinglePrunebackupsWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Delete subscription key of this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleSubscriptionAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Delete subscription key of this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleSubscriptionWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deletePool
        /// </summary>
        /// <remarks>
        /// Delete pool (deprecated, no support for nested pools, use &#39;DELETE /pools/?poolid&#x3D;{poolid}&#39;).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeletePoolAsync(string poolid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deletePool
        /// </summary>
        /// <remarks>
        /// Delete pool (deprecated, no support for nested pools, use &#39;DELETE /pools/?poolid&#x3D;{poolid}&#39;).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeletePoolWithHttpInfoAsync(string poolid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deletePools
        /// </summary>
        /// <remarks>
        /// Delete pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeletePoolsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deletePools
        /// </summary>
        /// <remarks>
        /// Delete pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeletePoolsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteStorageSingle
        /// </summary>
        /// <remarks>
        /// Delete storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteStorageSingleAsync(string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteStorageSingle
        /// </summary>
        /// <remarks>
        /// Delete storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteStorageSingleWithHttpInfoAsync(string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteVM
        /// </summary>
        /// <remarks>
        /// Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteVMAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteVM
        /// </summary>
        /// <remarks>
        /// Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteVMWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteVMFirewallIPSetAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// Delete IPSet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteVMFirewallIPSetWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteVMFirewallRuleAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> DeleteVMFirewallRuleWithHttpInfoAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// deleteVMSnapshot
        /// </summary>
        /// <remarks>
        /// Delete a VM snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> DeleteVMSnapshotAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// deleteVMSnapshot
        /// </summary>
        /// <remarks>
        /// Delete a VM snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> DeleteVMSnapshotWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccess
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetAccessAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccess
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetAccessWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessAcl
        /// </summary>
        /// <remarks>
        /// Get Access Control List (ACLs).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessAcl200Response</returns>
        System.Threading.Tasks.Task<GetAccessAcl200Response> GetAccessAclAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessAcl
        /// </summary>
        /// <remarks>
        /// Get Access Control List (ACLs).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessAcl200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessAcl200Response>> GetAccessAclWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessDomains
        /// </summary>
        /// <remarks>
        /// Authentication domain index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessDomains200Response</returns>
        System.Threading.Tasks.Task<GetAccessDomains200Response> GetAccessDomainsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessDomains
        /// </summary>
        /// <remarks>
        /// Authentication domain index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessDomains200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessDomains200Response>> GetAccessDomainsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Get auth server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetAccessDomainsSingleAsync(string realm, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Get auth server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetAccessDomainsSingleWithHttpInfoAsync(string realm, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessGroups
        /// </summary>
        /// <remarks>
        /// Group index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessGroups200Response</returns>
        System.Threading.Tasks.Task<GetAccessGroups200Response> GetAccessGroupsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessGroups
        /// </summary>
        /// <remarks>
        /// Group index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessGroups200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessGroups200Response>> GetAccessGroupsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Get group configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessGroupsSingle200Response</returns>
        System.Threading.Tasks.Task<GetAccessGroupsSingle200Response> GetAccessGroupsSingleAsync(string groupid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Get group configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessGroupsSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessGroupsSingle200Response>> GetAccessGroupsSingleWithHttpInfoAsync(string groupid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessOpenid
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetAccessOpenidAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessOpenid
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetAccessOpenidWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessPermissions
        /// </summary>
        /// <remarks>
        /// Retrieve effective permissions of given user/token.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessPermissions200Response</returns>
        System.Threading.Tasks.Task<GetAccessPermissions200Response> GetAccessPermissionsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessPermissions
        /// </summary>
        /// <remarks>
        /// Retrieve effective permissions of given user/token.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessPermissions200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessPermissions200Response>> GetAccessPermissionsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessRoles
        /// </summary>
        /// <remarks>
        /// Role index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessRoles200Response</returns>
        System.Threading.Tasks.Task<GetAccessRoles200Response> GetAccessRolesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessRoles
        /// </summary>
        /// <remarks>
        /// Role index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessRoles200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessRoles200Response>> GetAccessRolesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Get role configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessRolesSingle200Response</returns>
        System.Threading.Tasks.Task<GetAccessRolesSingle200Response> GetAccessRolesSingleAsync(string roleid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Get role configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessRolesSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessRolesSingle200Response>> GetAccessRolesSingleWithHttpInfoAsync(string roleid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessTfa
        /// </summary>
        /// <remarks>
        /// List TFA configurations of users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessTfa200Response</returns>
        System.Threading.Tasks.Task<GetAccessTfa200Response> GetAccessTfaAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessTfa
        /// </summary>
        /// <remarks>
        /// List TFA configurations of users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessTfa200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessTfa200Response>> GetAccessTfaWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessTfaSingle
        /// </summary>
        /// <remarks>
        /// List TFA configurations of users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessTfaSingle200Response</returns>
        System.Threading.Tasks.Task<GetAccessTfaSingle200Response> GetAccessTfaSingleAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessTfaSingle
        /// </summary>
        /// <remarks>
        /// List TFA configurations of users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessTfaSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessTfaSingle200Response>> GetAccessTfaSingleWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Fetch a requested TFA entry if present.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessTfaSingleSingle200Response</returns>
        System.Threading.Tasks.Task<GetAccessTfaSingleSingle200Response> GetAccessTfaSingleSingleAsync(string id, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Fetch a requested TFA entry if present.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessTfaSingleSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessTfaSingleSingle200Response>> GetAccessTfaSingleSingleWithHttpInfoAsync(string id, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessTicket
        /// </summary>
        /// <remarks>
        /// Dummy. Useful for formatters which want to provide a login page.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetAccessTicketAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessTicket
        /// </summary>
        /// <remarks>
        /// Dummy. Useful for formatters which want to provide a login page.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetAccessTicketWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessUsers
        /// </summary>
        /// <remarks>
        /// User index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsers200Response</returns>
        System.Threading.Tasks.Task<GetAccessUsers200Response> GetAccessUsersAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessUsers
        /// </summary>
        /// <remarks>
        /// User index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsers200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessUsers200Response>> GetAccessUsersWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Get user configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsersSingle200Response</returns>
        System.Threading.Tasks.Task<GetAccessUsersSingle200Response> GetAccessUsersSingleAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Get user configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsersSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessUsersSingle200Response>> GetAccessUsersSingleWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessUsersSingleTfa
        /// </summary>
        /// <remarks>
        /// Get user TFA types (Personal and Realm).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsersSingleTfa200Response</returns>
        System.Threading.Tasks.Task<GetAccessUsersSingleTfa200Response> GetAccessUsersSingleTfaAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessUsersSingleTfa
        /// </summary>
        /// <remarks>
        /// Get user TFA types (Personal and Realm).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsersSingleTfa200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessUsersSingleTfa200Response>> GetAccessUsersSingleTfaWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessUsersSingleToken
        /// </summary>
        /// <remarks>
        /// Get user API tokens.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsersSingleToken200Response</returns>
        System.Threading.Tasks.Task<GetAccessUsersSingleToken200Response> GetAccessUsersSingleTokenAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessUsersSingleToken
        /// </summary>
        /// <remarks>
        /// Get user API tokens.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsersSingleToken200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessUsersSingleToken200Response>> GetAccessUsersSingleTokenWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Get specific API token information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsersSingleTokenSingle200Response</returns>
        System.Threading.Tasks.Task<GetAccessUsersSingleTokenSingle200Response> GetAccessUsersSingleTokenSingleAsync(string tokenid, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Get specific API token information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsersSingleTokenSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetAccessUsersSingleTokenSingle200Response>> GetAccessUsersSingleTokenSingleWithHttpInfoAsync(string tokenid, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getCluster
        /// </summary>
        /// <remarks>
        /// Cluster index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getCluster
        /// </summary>
        /// <remarks>
        /// Cluster index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcme
        /// </summary>
        /// <remarks>
        /// ACMEAccount index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterAcmeAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcme
        /// </summary>
        /// <remarks>
        /// ACMEAccount index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterAcmeWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcmeAccount
        /// </summary>
        /// <remarks>
        /// ACMEAccount index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterAcmeAccountAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcmeAccount
        /// </summary>
        /// <remarks>
        /// ACMEAccount index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterAcmeAccountWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Return existing ACME account information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeAccountSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterAcmeAccountSingle200Response> GetClusterAcmeAccountSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Return existing ACME account information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeAccountSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterAcmeAccountSingle200Response>> GetClusterAcmeAccountSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcmeChallengeschema
        /// </summary>
        /// <remarks>
        /// Get schema of ACME challenge types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeChallengeschema200Response</returns>
        System.Threading.Tasks.Task<GetClusterAcmeChallengeschema200Response> GetClusterAcmeChallengeschemaAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcmeChallengeschema
        /// </summary>
        /// <remarks>
        /// Get schema of ACME challenge types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeChallengeschema200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterAcmeChallengeschema200Response>> GetClusterAcmeChallengeschemaWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcmeDirectories
        /// </summary>
        /// <remarks>
        /// Get named known ACME directory endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeDirectories200Response</returns>
        System.Threading.Tasks.Task<GetClusterAcmeDirectories200Response> GetClusterAcmeDirectoriesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcmeDirectories
        /// </summary>
        /// <remarks>
        /// Get named known ACME directory endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeDirectories200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterAcmeDirectories200Response>> GetClusterAcmeDirectoriesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcmeMeta
        /// </summary>
        /// <remarks>
        /// Retrieve ACME Directory Meta Information
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeMeta200Response</returns>
        System.Threading.Tasks.Task<GetClusterAcmeMeta200Response> GetClusterAcmeMetaAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcmeMeta
        /// </summary>
        /// <remarks>
        /// Retrieve ACME Directory Meta Information
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeMeta200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterAcmeMeta200Response>> GetClusterAcmeMetaWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcmePlugins
        /// </summary>
        /// <remarks>
        /// ACME plugin index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmePlugins200Response</returns>
        System.Threading.Tasks.Task<GetClusterAcmePlugins200Response> GetClusterAcmePluginsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcmePlugins
        /// </summary>
        /// <remarks>
        /// ACME plugin index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmePlugins200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterAcmePlugins200Response>> GetClusterAcmePluginsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Get ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmePluginsSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterAcmePluginsSingle200Response> GetClusterAcmePluginsSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Get ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmePluginsSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterAcmePluginsSingle200Response>> GetClusterAcmePluginsSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterAcmeTos
        /// </summary>
        /// <remarks>
        /// Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeTos200Response</returns>
        System.Threading.Tasks.Task<GetClusterAcmeTos200Response> GetClusterAcmeTosAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterAcmeTos
        /// </summary>
        /// <remarks>
        /// Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeTos200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterAcmeTos200Response>> GetClusterAcmeTosWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterBackup
        /// </summary>
        /// <remarks>
        /// List vzdump backup schedule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackup200Response</returns>
        System.Threading.Tasks.Task<GetClusterBackup200Response> GetClusterBackupAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterBackup
        /// </summary>
        /// <remarks>
        /// List vzdump backup schedule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackup200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterBackup200Response>> GetClusterBackupWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Read vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterBackupSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Read vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterBackupSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterBackupSingleIncludedvolumes
        /// </summary>
        /// <remarks>
        /// Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackupSingleIncludedvolumes200Response</returns>
        System.Threading.Tasks.Task<GetClusterBackupSingleIncludedvolumes200Response> GetClusterBackupSingleIncludedvolumesAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterBackupSingleIncludedvolumes
        /// </summary>
        /// <remarks>
        /// Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackupSingleIncludedvolumes200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterBackupSingleIncludedvolumes200Response>> GetClusterBackupSingleIncludedvolumesWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterBackupinfo
        /// </summary>
        /// <remarks>
        /// Index for backup info related endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackupinfo200Response</returns>
        System.Threading.Tasks.Task<GetClusterBackupinfo200Response> GetClusterBackupinfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterBackupinfo
        /// </summary>
        /// <remarks>
        /// Index for backup info related endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackupinfo200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterBackupinfo200Response>> GetClusterBackupinfoWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterBackupinfoNotbackedup
        /// </summary>
        /// <remarks>
        /// Shows all guests which are not covered by any backup job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackupinfoNotbackedup200Response</returns>
        System.Threading.Tasks.Task<GetClusterBackupinfoNotbackedup200Response> GetClusterBackupinfoNotbackedupAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterBackupinfoNotbackedup
        /// </summary>
        /// <remarks>
        /// Shows all guests which are not covered by any backup job.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackupinfoNotbackedup200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterBackupinfoNotbackedup200Response>> GetClusterBackupinfoNotbackedupWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterBulkaction
        /// </summary>
        /// <remarks>
        /// List resource types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMapping200Response</returns>
        System.Threading.Tasks.Task<GetClusterMapping200Response> GetClusterBulkactionAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterBulkaction
        /// </summary>
        /// <remarks>
        /// List resource types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMapping200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMapping200Response>> GetClusterBulkactionWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterBulkactionGuest
        /// </summary>
        /// <remarks>
        /// Bulk action index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterBulkactionGuestAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterBulkactionGuest
        /// </summary>
        /// <remarks>
        /// Bulk action index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterBulkactionGuestWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterCeph
        /// </summary>
        /// <remarks>
        /// Cluster ceph index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterCephAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterCeph
        /// </summary>
        /// <remarks>
        /// Cluster ceph index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterCephWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterCephFlags
        /// </summary>
        /// <remarks>
        /// get the status of all ceph flags
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterCephFlags200Response</returns>
        System.Threading.Tasks.Task<GetClusterCephFlags200Response> GetClusterCephFlagsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterCephFlags
        /// </summary>
        /// <remarks>
        /// get the status of all ceph flags
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterCephFlags200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterCephFlags200Response>> GetClusterCephFlagsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterCephFlagsSingle
        /// </summary>
        /// <remarks>
        /// Get the status of a specific ceph flag.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterCephFlagsSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterCephFlagsSingle200Response> GetClusterCephFlagsSingleAsync(string flag, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterCephFlagsSingle
        /// </summary>
        /// <remarks>
        /// Get the status of a specific ceph flag.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterCephFlagsSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterCephFlagsSingle200Response>> GetClusterCephFlagsSingleWithHttpInfoAsync(string flag, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterCephMetadata
        /// </summary>
        /// <remarks>
        /// Get ceph metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterCephMetadata200Response</returns>
        System.Threading.Tasks.Task<GetClusterCephMetadata200Response> GetClusterCephMetadataAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterCephMetadata
        /// </summary>
        /// <remarks>
        /// Get ceph metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterCephMetadata200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterCephMetadata200Response>> GetClusterCephMetadataWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterCephStatus
        /// </summary>
        /// <remarks>
        /// Get ceph status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterCephStatusAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterCephStatus
        /// </summary>
        /// <remarks>
        /// Get ceph status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterCephStatusWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterConfig
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterConfigAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterConfig
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterConfigWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterConfigApiversion
        /// </summary>
        /// <remarks>
        /// Return the version of the cluster join API available on this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterConfigApiversion200Response</returns>
        System.Threading.Tasks.Task<GetClusterConfigApiversion200Response> GetClusterConfigApiversionAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterConfigApiversion
        /// </summary>
        /// <remarks>
        /// Return the version of the cluster join API available on this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterConfigApiversion200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterConfigApiversion200Response>> GetClusterConfigApiversionWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterConfigJoin
        /// </summary>
        /// <remarks>
        /// Get information needed to join this cluster over the connected node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterConfigJoin200Response</returns>
        System.Threading.Tasks.Task<GetClusterConfigJoin200Response> GetClusterConfigJoinAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterConfigJoin
        /// </summary>
        /// <remarks>
        /// Get information needed to join this cluster over the connected node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterConfigJoin200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterConfigJoin200Response>> GetClusterConfigJoinWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterConfigNodes
        /// </summary>
        /// <remarks>
        /// Corosync node list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterConfigNodes200Response</returns>
        System.Threading.Tasks.Task<GetClusterConfigNodes200Response> GetClusterConfigNodesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterConfigNodes
        /// </summary>
        /// <remarks>
        /// Corosync node list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterConfigNodes200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterConfigNodes200Response>> GetClusterConfigNodesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterConfigQdevice
        /// </summary>
        /// <remarks>
        /// Get QDevice status
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterConfigQdeviceAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterConfigQdevice
        /// </summary>
        /// <remarks>
        /// Get QDevice status
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterConfigQdeviceWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterConfigTotem
        /// </summary>
        /// <remarks>
        /// Get corosync totem protocol settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterConfigTotemAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterConfigTotem
        /// </summary>
        /// <remarks>
        /// Get corosync totem protocol settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterConfigTotemWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterFirewallAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterFirewallWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallAliases200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallAliases200Response> GetClusterFirewallAliasesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallAliases200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallAliases200Response>> GetClusterFirewallAliasesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterFirewallAliasesSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterFirewallAliasesSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetClusterFirewallGroupRuleAsync(string group, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRule200Response>> GetClusterFirewallGroupRuleWithHttpInfoAsync(string group, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallGroupRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetClusterFirewallGroupRulesAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallGroupRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRules200Response>> GetClusterFirewallGroupRulesWithHttpInfoAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallGroups
        /// </summary>
        /// <remarks>
        /// List security groups.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroups200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroups200Response> GetClusterFirewallGroupsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallGroups
        /// </summary>
        /// <remarks>
        /// List security groups.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroups200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroups200Response>> GetClusterFirewallGroupsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSet200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallIPSet200Response> GetClusterFirewallIPSetAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallIPSet
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSet200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallIPSet200Response>> GetClusterFirewallIPSetWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterFirewallIPSetIPAsync(string cidr, string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallIPSets
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSets200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallIPSets200Response> GetClusterFirewallIPSetsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallIPSets
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSets200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallIPSets200Response>> GetClusterFirewallIPSetsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallMacros
        /// </summary>
        /// <remarks>
        /// List available macros
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallMacros200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallMacros200Response> GetClusterFirewallMacrosAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallMacros
        /// </summary>
        /// <remarks>
        /// List available macros
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallMacros200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallMacros200Response>> GetClusterFirewallMacrosWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallOptions200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallOptions200Response> GetClusterFirewallOptionsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallOptions200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallOptions200Response>> GetClusterFirewallOptionsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallRefs200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallRefs200Response> GetClusterFirewallRefsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallRefs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallRefs200Response>> GetClusterFirewallRefsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetClusterFirewallRuleAsync(int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRule200Response>> GetClusterFirewallRuleWithHttpInfoAsync(int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetClusterFirewallRulesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRules200Response>> GetClusterFirewallRulesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHa
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHa200Response</returns>
        System.Threading.Tasks.Task<GetClusterHa200Response> GetClusterHaAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHa
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHa200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHa200Response>> GetClusterHaWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaGroups
        /// </summary>
        /// <remarks>
        /// Get HA groups. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaGroups200Response</returns>
        System.Threading.Tasks.Task<GetClusterHaGroups200Response> GetClusterHaGroupsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaGroups
        /// </summary>
        /// <remarks>
        /// Get HA groups. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaGroups200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHaGroups200Response>> GetClusterHaGroupsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Read ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterHaGroupsSingleAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Read ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetClusterHaGroupsSingleWithHttpInfoAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaResources
        /// </summary>
        /// <remarks>
        /// List HA resources.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaResources200Response</returns>
        System.Threading.Tasks.Task<GetClusterHaResources200Response> GetClusterHaResourcesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaResources
        /// </summary>
        /// <remarks>
        /// List HA resources.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaResources200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHaResources200Response>> GetClusterHaResourcesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Read resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaResourcesSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterHaResourcesSingle200Response> GetClusterHaResourcesSingleAsync(string sid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Read resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaResourcesSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHaResourcesSingle200Response>> GetClusterHaResourcesSingleWithHttpInfoAsync(string sid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaRules
        /// </summary>
        /// <remarks>
        /// Get HA rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaRules200Response</returns>
        System.Threading.Tasks.Task<GetClusterHaRules200Response> GetClusterHaRulesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaRules
        /// </summary>
        /// <remarks>
        /// Get HA rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaRules200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHaRules200Response>> GetClusterHaRulesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Read HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaRulesSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterHaRulesSingle200Response> GetClusterHaRulesSingleAsync(string rule, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Read HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaRulesSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHaRulesSingle200Response>> GetClusterHaRulesSingleWithHttpInfoAsync(string rule, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaStatus
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterHaStatusAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaStatus
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterHaStatusWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaStatusCurrent
        /// </summary>
        /// <remarks>
        /// Get HA manger status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaStatusCurrent200Response</returns>
        System.Threading.Tasks.Task<GetClusterHaStatusCurrent200Response> GetClusterHaStatusCurrentAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaStatusCurrent
        /// </summary>
        /// <remarks>
        /// Get HA manger status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaStatusCurrent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHaStatusCurrent200Response>> GetClusterHaStatusCurrentWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterHaStatusManagerstatus
        /// </summary>
        /// <remarks>
        /// Get full HA manger status, including LRM status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterHaStatusManagerstatusAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterHaStatusManagerstatus
        /// </summary>
        /// <remarks>
        /// Get full HA manger status, including LRM status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterHaStatusManagerstatusWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterJobs
        /// </summary>
        /// <remarks>
        /// Index for jobs related endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackupinfo200Response</returns>
        System.Threading.Tasks.Task<GetClusterBackupinfo200Response> GetClusterJobsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterJobs
        /// </summary>
        /// <remarks>
        /// Index for jobs related endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackupinfo200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterBackupinfo200Response>> GetClusterJobsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterJobsRealmsync
        /// </summary>
        /// <remarks>
        /// List configured realm-sync-jobs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterJobsRealmsync200Response</returns>
        System.Threading.Tasks.Task<GetClusterJobsRealmsync200Response> GetClusterJobsRealmsyncAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterJobsRealmsync
        /// </summary>
        /// <remarks>
        /// List configured realm-sync-jobs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterJobsRealmsync200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterJobsRealmsync200Response>> GetClusterJobsRealmsyncWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Read realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterJobsRealmsyncSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Read realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterJobsRealmsyncSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterJobsScheduleanalyze
        /// </summary>
        /// <remarks>
        /// Returns a list of future schedule runtimes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterJobsScheduleanalyze200Response</returns>
        System.Threading.Tasks.Task<GetClusterJobsScheduleanalyze200Response> GetClusterJobsScheduleanalyzeAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterJobsScheduleanalyze
        /// </summary>
        /// <remarks>
        /// Returns a list of future schedule runtimes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterJobsScheduleanalyze200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterJobsScheduleanalyze200Response>> GetClusterJobsScheduleanalyzeWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterLog
        /// </summary>
        /// <remarks>
        /// Read cluster log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterLogAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterLog
        /// </summary>
        /// <remarks>
        /// Read cluster log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterLogWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMapping
        /// </summary>
        /// <remarks>
        /// List resource types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMapping200Response</returns>
        System.Threading.Tasks.Task<GetClusterMapping200Response> GetClusterMappingAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMapping
        /// </summary>
        /// <remarks>
        /// List resource types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMapping200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMapping200Response>> GetClusterMappingWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMappingDir
        /// </summary>
        /// <remarks>
        /// List directory mapping
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMappingDir200Response</returns>
        System.Threading.Tasks.Task<GetClusterMappingDir200Response> GetClusterMappingDirAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMappingDir
        /// </summary>
        /// <remarks>
        /// List directory mapping
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMappingDir200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMappingDir200Response>> GetClusterMappingDirWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Get directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterMappingDirSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Get directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterMappingDirSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMappingPci
        /// </summary>
        /// <remarks>
        /// List PCI Hardware Mapping
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMappingPci200Response</returns>
        System.Threading.Tasks.Task<GetClusterMappingPci200Response> GetClusterMappingPciAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMappingPci
        /// </summary>
        /// <remarks>
        /// List PCI Hardware Mapping
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMappingPci200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMappingPci200Response>> GetClusterMappingPciWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Get PCI Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterMappingPciSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Get PCI Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterMappingPciSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMappingUsb
        /// </summary>
        /// <remarks>
        /// List USB Hardware Mappings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMappingUsb200Response</returns>
        System.Threading.Tasks.Task<GetClusterMappingUsb200Response> GetClusterMappingUsbAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMappingUsb
        /// </summary>
        /// <remarks>
        /// List USB Hardware Mappings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMappingUsb200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMappingUsb200Response>> GetClusterMappingUsbWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Get USB Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterMappingUsbSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Get USB Mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterMappingUsbSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMetrics
        /// </summary>
        /// <remarks>
        /// Metrics index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterMetricsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMetrics
        /// </summary>
        /// <remarks>
        /// Metrics index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterMetricsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMetricsExport
        /// </summary>
        /// <remarks>
        /// Retrieve metrics of the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsExport200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsExport200Response> GetClusterMetricsExportAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMetricsExport
        /// </summary>
        /// <remarks>
        /// Retrieve metrics of the cluster.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsExport200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsExport200Response>> GetClusterMetricsExportWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMetricsServer
        /// </summary>
        /// <remarks>
        /// List configured metric servers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServer200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServer200Response> GetClusterMetricsServerAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMetricsServer
        /// </summary>
        /// <remarks>
        /// List configured metric servers.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServer200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServer200Response>> GetClusterMetricsServerWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Read metric server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterMetricsServerSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Read metric server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterMetricsServerSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNextid
        /// </summary>
        /// <remarks>
        /// Get next free VMID. Pass a VMID to assert that its free (at time of check).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNextid200Response</returns>
        System.Threading.Tasks.Task<GetClusterNextid200Response> GetClusterNextidAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNextid
        /// </summary>
        /// <remarks>
        /// Get next free VMID. Pass a VMID to assert that its free (at time of check).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNextid200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNextid200Response>> GetClusterNextidWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotifications
        /// </summary>
        /// <remarks>
        /// Index for notification-related API endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterNotificationsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotifications
        /// </summary>
        /// <remarks>
        /// Index for notification-related API endpoints.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterNotificationsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpoints
        /// </summary>
        /// <remarks>
        /// Index for all available endpoint types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterNotificationsEndpointsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpoints
        /// </summary>
        /// <remarks>
        /// Index for all available endpoint types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterNotificationsEndpointsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpointsGotify
        /// </summary>
        /// <remarks>
        /// Returns a list of all gotify endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsGotify200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsEndpointsGotify200Response> GetClusterNotificationsEndpointsGotifyAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpointsGotify
        /// </summary>
        /// <remarks>
        /// Returns a list of all gotify endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsGotify200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsEndpointsGotify200Response>> GetClusterNotificationsEndpointsGotifyWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Return a specific gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsGotifySingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsEndpointsGotifySingle200Response> GetClusterNotificationsEndpointsGotifySingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Return a specific gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsGotifySingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsEndpointsGotifySingle200Response>> GetClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpointsSendmail
        /// </summary>
        /// <remarks>
        /// Returns a list of all sendmail endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsSendmail200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsEndpointsSendmail200Response> GetClusterNotificationsEndpointsSendmailAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpointsSendmail
        /// </summary>
        /// <remarks>
        /// Returns a list of all sendmail endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsSendmail200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsEndpointsSendmail200Response>> GetClusterNotificationsEndpointsSendmailWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Return a specific sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsSendmailSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsEndpointsSendmailSingle200Response> GetClusterNotificationsEndpointsSendmailSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Return a specific sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsSendmailSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsEndpointsSendmailSingle200Response>> GetClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpointsSmtp
        /// </summary>
        /// <remarks>
        /// Returns a list of all smtp endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsSmtp200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsEndpointsSmtp200Response> GetClusterNotificationsEndpointsSmtpAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpointsSmtp
        /// </summary>
        /// <remarks>
        /// Returns a list of all smtp endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsSmtp200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsEndpointsSmtp200Response>> GetClusterNotificationsEndpointsSmtpWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Return a specific smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsSmtpSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsEndpointsSmtpSingle200Response> GetClusterNotificationsEndpointsSmtpSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Return a specific smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsSmtpSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsEndpointsSmtpSingle200Response>> GetClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpointsWebhook
        /// </summary>
        /// <remarks>
        /// Returns a list of all webhook endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsWebhook200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsEndpointsWebhook200Response> GetClusterNotificationsEndpointsWebhookAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpointsWebhook
        /// </summary>
        /// <remarks>
        /// Returns a list of all webhook endpoints
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsWebhook200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsEndpointsWebhook200Response>> GetClusterNotificationsEndpointsWebhookWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Return a specific webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsWebhookSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsEndpointsWebhookSingle200Response> GetClusterNotificationsEndpointsWebhookSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Return a specific webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsWebhookSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsEndpointsWebhookSingle200Response>> GetClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsMatcherfields
        /// </summary>
        /// <remarks>
        /// Returns known notification metadata fields
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsMatcherfields200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsMatcherfields200Response> GetClusterNotificationsMatcherfieldsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsMatcherfields
        /// </summary>
        /// <remarks>
        /// Returns known notification metadata fields
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsMatcherfields200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsMatcherfields200Response>> GetClusterNotificationsMatcherfieldsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsMatcherfieldvalues
        /// </summary>
        /// <remarks>
        /// Returns known notification metadata fields and their known values
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsMatcherfieldvalues200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsMatcherfieldvalues200Response> GetClusterNotificationsMatcherfieldvaluesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsMatcherfieldvalues
        /// </summary>
        /// <remarks>
        /// Returns known notification metadata fields and their known values
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsMatcherfieldvalues200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsMatcherfieldvalues200Response>> GetClusterNotificationsMatcherfieldvaluesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsMatchers
        /// </summary>
        /// <remarks>
        /// Returns a list of all matchers
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsMatchers200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsMatchers200Response> GetClusterNotificationsMatchersAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsMatchers
        /// </summary>
        /// <remarks>
        /// Returns a list of all matchers
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsMatchers200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsMatchers200Response>> GetClusterNotificationsMatchersWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Return a specific matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsMatchersSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsMatchersSingle200Response> GetClusterNotificationsMatchersSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Return a specific matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsMatchersSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsMatchersSingle200Response>> GetClusterNotificationsMatchersSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterNotificationsTargets
        /// </summary>
        /// <remarks>
        /// Returns a list of all entities that can be used as notification targets.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsTargets200Response</returns>
        System.Threading.Tasks.Task<GetClusterNotificationsTargets200Response> GetClusterNotificationsTargetsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterNotificationsTargets
        /// </summary>
        /// <remarks>
        /// Returns a list of all entities that can be used as notification targets.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsTargets200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterNotificationsTargets200Response>> GetClusterNotificationsTargetsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterOptions
        /// </summary>
        /// <remarks>
        /// Get datacenter options. Without &#39;Sys.Audit&#39; on &#39;/&#39; not all options are returned.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterOptionsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterOptions
        /// </summary>
        /// <remarks>
        /// Get datacenter options. Without &#39;Sys.Audit&#39; on &#39;/&#39; not all options are returned.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterOptionsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterReplication
        /// </summary>
        /// <remarks>
        /// List replication jobs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterReplication200Response</returns>
        System.Threading.Tasks.Task<GetClusterReplication200Response> GetClusterReplicationAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterReplication
        /// </summary>
        /// <remarks>
        /// List replication jobs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterReplication200Response>> GetClusterReplicationWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Read replication job configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterReplicationSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterReplicationSingle200Response> GetClusterReplicationSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Read replication job configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterReplicationSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterReplicationSingle200Response>> GetClusterReplicationSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterResources
        /// </summary>
        /// <remarks>
        /// Resources index (cluster wide).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterResources200Response</returns>
        System.Threading.Tasks.Task<GetClusterResources200Response> GetClusterResourcesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterResources
        /// </summary>
        /// <remarks>
        /// Resources index (cluster wide).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterResources200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterResources200Response>> GetClusterResourcesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSDN
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHa200Response</returns>
        System.Threading.Tasks.Task<GetClusterHa200Response> GetClusterSDNAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSDN
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHa200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHa200Response>> GetClusterSDNWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSDNController
        /// </summary>
        /// <remarks>
        /// Read sdn controller configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterSDNControllerAsync(string controller, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSDNController
        /// </summary>
        /// <remarks>
        /// Read sdn controller configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetClusterSDNControllerWithHttpInfoAsync(string controller, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSDNControllers
        /// </summary>
        /// <remarks>
        /// SDN controllers index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSDNControllers200Response</returns>
        System.Threading.Tasks.Task<GetClusterSDNControllers200Response> GetClusterSDNControllersAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSDNControllers
        /// </summary>
        /// <remarks>
        /// SDN controllers index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSDNControllers200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSDNControllers200Response>> GetClusterSDNControllersWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Read sdn vnet configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterSDNVnetAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Read sdn vnet configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetClusterSDNVnetWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSDNVnets
        /// </summary>
        /// <remarks>
        /// SDN vnets index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSDNVnets200Response</returns>
        System.Threading.Tasks.Task<GetClusterSDNVnets200Response> GetClusterSDNVnetsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSDNVnets
        /// </summary>
        /// <remarks>
        /// SDN vnets index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSDNVnets200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSDNVnets200Response>> GetClusterSDNVnetsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Read sdn zone configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterSDNZoneAsync(string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Read sdn zone configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetClusterSDNZoneWithHttpInfoAsync(string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSDNZones
        /// </summary>
        /// <remarks>
        /// SDN zones index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSDNZones200Response</returns>
        System.Threading.Tasks.Task<GetClusterSDNZones200Response> GetClusterSDNZonesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSDNZones
        /// </summary>
        /// <remarks>
        /// SDN zones index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSDNZones200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSDNZones200Response>> GetClusterSDNZonesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnDns
        /// </summary>
        /// <remarks>
        /// SDN dns index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnDns200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnDns200Response> GetClusterSdnDnsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnDns
        /// </summary>
        /// <remarks>
        /// SDN dns index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnDns200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnDns200Response>> GetClusterSdnDnsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn dns configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterSdnDnsSingleAsync(string dns, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn dns configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterSdnDnsSingleWithHttpInfoAsync(string dns, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnFabrics
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetClusterSdnFabricsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnFabrics
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetClusterSdnFabricsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnFabricsAll
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsAll200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabricsAll200Response> GetClusterSdnFabricsAllAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnFabricsAll
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsAll200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabricsAll200Response>> GetClusterSdnFabricsAllWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnFabricsFabric
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsFabric200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabricsFabric200Response> GetClusterSdnFabricsFabricAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnFabricsFabric
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsFabric200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabricsFabric200Response>> GetClusterSdnFabricsFabricWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Update a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsFabricSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabricsFabricSingle200Response> GetClusterSdnFabricsFabricSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Update a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsFabricSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabricsFabricSingle200Response>> GetClusterSdnFabricsFabricSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnFabricsNode
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsNode200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabricsNode200Response> GetClusterSdnFabricsNodeAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnFabricsNode
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsNode200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabricsNode200Response>> GetClusterSdnFabricsNodeWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnFabricsNodeSingle
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsNode200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabricsNode200Response> GetClusterSdnFabricsNodeSingleAsync(string fabricId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnFabricsNodeSingle
        /// </summary>
        /// <remarks>
        /// SDN Fabrics Index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsNode200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabricsNode200Response>> GetClusterSdnFabricsNodeSingleWithHttpInfoAsync(string fabricId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Get a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterSdnFabricsNodeSingleSingleAsync(string fabricId, string nodeId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Get a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(string fabricId, string nodeId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnIpams
        /// </summary>
        /// <remarks>
        /// SDN ipams index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnIpams200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnIpams200Response> GetClusterSdnIpamsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnIpams
        /// </summary>
        /// <remarks>
        /// SDN ipams index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnIpams200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnIpams200Response>> GetClusterSdnIpamsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn ipam configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterSdnIpamsSingleAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn ipam configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterSdnIpamsSingleWithHttpInfoAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnIpamsSingleStatus
        /// </summary>
        /// <remarks>
        /// List PVE IPAM Entries
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnIpamsSingleStatus200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnIpamsSingleStatus200Response> GetClusterSdnIpamsSingleStatusAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnIpamsSingleStatus
        /// </summary>
        /// <remarks>
        /// List PVE IPAM Entries
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnIpamsSingleStatus200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnIpamsSingleStatus200Response>> GetClusterSdnIpamsSingleStatusWithHttpInfoAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnVnetsSingleFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterSdnVnetsSingleFirewallAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnVnetsSingleFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterSdnVnetsSingleFirewallWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnVnetsSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get vnet firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnVnetsSingleFirewallOptions200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnVnetsSingleFirewallOptions200Response> GetClusterSdnVnetsSingleFirewallOptionsAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get vnet firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnVnetsSingleFirewallOptions200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnVnetsSingleFirewallOptions200Response>> GetClusterSdnVnetsSingleFirewallOptionsWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetClusterSdnVnetsSingleFirewallRulesAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRules200Response>> GetClusterSdnVnetsSingleFirewallRulesWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetClusterSdnVnetsSingleFirewallRulesSingleAsync(int pos, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRule200Response>> GetClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(int pos, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnVnetsSingleSubnets
        /// </summary>
        /// <remarks>
        /// SDN subnets index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetClusterSdnVnetsSingleSubnetsAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnVnetsSingleSubnets
        /// </summary>
        /// <remarks>
        /// SDN subnets index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetClusterSdnVnetsSingleSubnetsWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn subnet configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterSdnVnetsSingleSubnetsSingleAsync(string subnet, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Read sdn subnet configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(string subnet, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterStatus
        /// </summary>
        /// <remarks>
        /// Get cluster status information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterStatus200Response</returns>
        System.Threading.Tasks.Task<GetClusterStatus200Response> GetClusterStatusAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterStatus
        /// </summary>
        /// <remarks>
        /// Get cluster status information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterStatus200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterStatus200Response>> GetClusterStatusWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getClusterTasks
        /// </summary>
        /// <remarks>
        /// List recent tasks (cluster wide).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterTasks200Response</returns>
        System.Threading.Tasks.Task<GetClusterTasks200Response> GetClusterTasksAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getClusterTasks
        /// </summary>
        /// <remarks>
        /// List recent tasks (cluster wide).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterTasks200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterTasks200Response>> GetClusterTasksWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getCurrentVMStatus
        /// </summary>
        /// <remarks>
        /// Get virtual machine status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCurrentVMStatus200Response</returns>
        System.Threading.Tasks.Task<GetCurrentVMStatus200Response> GetCurrentVMStatusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getCurrentVMStatus
        /// </summary>
        /// <remarks>
        /// Get virtual machine status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCurrentVMStatus200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCurrentVMStatus200Response>> GetCurrentVMStatusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNode
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodeAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNode
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodeWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodeFirewallAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodeFirewallWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get host firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeFirewallOptions200Response</returns>
        System.Threading.Tasks.Task<GetNodeFirewallOptions200Response> GetNodeFirewallOptionsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get host firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeFirewallOptions200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodeFirewallOptions200Response>> GetNodeFirewallOptionsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetNodeFirewallRuleAsync(string node, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRule200Response>> GetNodeFirewallRuleWithHttpInfoAsync(string node, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetNodeFirewallRulesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRules200Response>> GetNodeFirewallRulesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeRRD
        /// </summary>
        /// <remarks>
        /// Read node RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMRRD200Response</returns>
        System.Threading.Tasks.Task<GetVMRRD200Response> GetNodeRRDAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeRRD
        /// </summary>
        /// <remarks>
        /// Read node RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMRRD200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMRRD200Response>> GetNodeRRDWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeRRDData
        /// </summary>
        /// <remarks>
        /// Read node RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodeRRDDataAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeRRDData
        /// </summary>
        /// <remarks>
        /// Read node RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodeRRDDataWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeSDN
        /// </summary>
        /// <remarks>
        /// SDN index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodeSDNAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeSDN
        /// </summary>
        /// <remarks>
        /// SDN index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodeSDNWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeSDNZone
        /// </summary>
        /// <remarks>
        /// Directory index for SDN zone status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodeSDNZoneAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeSDNZone
        /// </summary>
        /// <remarks>
        /// Directory index for SDN zone status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetNodeSDNZoneWithHttpInfoAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeSDNZoneContent
        /// </summary>
        /// <remarks>
        /// List zone content.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeSDNZoneContent200Response</returns>
        System.Threading.Tasks.Task<GetNodeSDNZoneContent200Response> GetNodeSDNZoneContentAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeSDNZoneContent
        /// </summary>
        /// <remarks>
        /// List zone content.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeSDNZoneContent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodeSDNZoneContent200Response>> GetNodeSDNZoneContentWithHttpInfoAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeSDNZones
        /// </summary>
        /// <remarks>
        /// Get status for all zones.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeSDNZones200Response</returns>
        System.Threading.Tasks.Task<GetNodeSDNZones200Response> GetNodeSDNZonesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeSDNZones
        /// </summary>
        /// <remarks>
        /// Get status for all zones.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeSDNZones200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodeSDNZones200Response>> GetNodeSDNZonesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeTask
        /// </summary>
        /// <remarks>
        /// getNodeTask
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodeTaskAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeTask
        /// </summary>
        /// <remarks>
        /// getNodeTask
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodeTaskWithHttpInfoAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeTaskLog
        /// </summary>
        /// <remarks>
        /// Read task log.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodeTaskLogAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeTaskLog
        /// </summary>
        /// <remarks>
        /// Read task log.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodeTaskLogWithHttpInfoAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeTaskStatus
        /// </summary>
        /// <remarks>
        /// Read task status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeTaskStatus200Response</returns>
        System.Threading.Tasks.Task<GetNodeTaskStatus200Response> GetNodeTaskStatusAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeTaskStatus
        /// </summary>
        /// <remarks>
        /// Read task status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeTaskStatus200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodeTaskStatus200Response>> GetNodeTaskStatusWithHttpInfoAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodeTasks
        /// </summary>
        /// <remarks>
        /// Read task list for one node (finished tasks).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeTasks200Response</returns>
        System.Threading.Tasks.Task<GetNodeTasks200Response> GetNodeTasksAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodeTasks
        /// </summary>
        /// <remarks>
        /// Read task list for one node (finished tasks).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeTasks200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodeTasks200Response>> GetNodeTasksWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodes
        /// </summary>
        /// <remarks>
        /// Cluster node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodes200Response</returns>
        System.Threading.Tasks.Task<GetNodes200Response> GetNodesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodes
        /// </summary>
        /// <remarks>
        /// Cluster node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodes200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodes200Response>> GetNodesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleAplinfo
        /// </summary>
        /// <remarks>
        /// Get list of appliances.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleAplinfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleAplinfo
        /// </summary>
        /// <remarks>
        /// Get list of appliances.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleAplinfoWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleApt
        /// </summary>
        /// <remarks>
        /// Directory index for apt (Advanced Package Tool).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHa200Response</returns>
        System.Threading.Tasks.Task<GetClusterHa200Response> GetNodesSingleAptAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleApt
        /// </summary>
        /// <remarks>
        /// Directory index for apt (Advanced Package Tool).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHa200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHa200Response>> GetNodesSingleAptWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleAptChangelog
        /// </summary>
        /// <remarks>
        /// Get package changelogs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleAptChangelogAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleAptChangelog
        /// </summary>
        /// <remarks>
        /// Get package changelogs.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetNodesSingleAptChangelogWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Get APT repository information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleAptRepositories200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleAptRepositories200Response> GetNodesSingleAptRepositoriesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Get APT repository information.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleAptRepositories200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleAptRepositories200Response>> GetNodesSingleAptRepositoriesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleAptUpdate
        /// </summary>
        /// <remarks>
        /// List available updates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleAptUpdate200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleAptUpdate200Response> GetNodesSingleAptUpdateAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleAptUpdate
        /// </summary>
        /// <remarks>
        /// List available updates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleAptUpdate200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleAptUpdate200Response>> GetNodesSingleAptUpdateWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleAptVersions
        /// </summary>
        /// <remarks>
        /// Get package information for important Proxmox packages.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleAptVersions200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleAptVersions200Response> GetNodesSingleAptVersionsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleAptVersions
        /// </summary>
        /// <remarks>
        /// Get package information for important Proxmox packages.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleAptVersions200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleAptVersions200Response>> GetNodesSingleAptVersionsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCapabilities
        /// </summary>
        /// <remarks>
        /// Node capabilities index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCapabilitiesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCapabilities
        /// </summary>
        /// <remarks>
        /// Node capabilities index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleCapabilitiesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCapabilitiesQemu
        /// </summary>
        /// <remarks>
        /// QEMU capabilities index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCapabilitiesQemuAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCapabilitiesQemu
        /// </summary>
        /// <remarks>
        /// QEMU capabilities index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleCapabilitiesQemuWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpu
        /// </summary>
        /// <remarks>
        /// List all custom and default CPU models.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCapabilitiesQemuCpu200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCapabilitiesQemuCpu200Response> GetNodesSingleCapabilitiesQemuCpuAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpu
        /// </summary>
        /// <remarks>
        /// List all custom and default CPU models.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCapabilitiesQemuCpu200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCapabilitiesQemuCpu200Response>> GetNodesSingleCapabilitiesQemuCpuWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpuflags
        /// </summary>
        /// <remarks>
        /// List of available VM-specific CPU flags.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCapabilitiesQemuCpuflags200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCapabilitiesQemuCpuflags200Response> GetNodesSingleCapabilitiesQemuCpuflagsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpuflags
        /// </summary>
        /// <remarks>
        /// List of available VM-specific CPU flags.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCapabilitiesQemuCpuflags200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCapabilitiesQemuCpuflags200Response>> GetNodesSingleCapabilitiesQemuCpuflagsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCapabilitiesQemuMachines
        /// </summary>
        /// <remarks>
        /// Get available QEMU/KVM machine types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCapabilitiesQemuMachines200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCapabilitiesQemuMachines200Response> GetNodesSingleCapabilitiesQemuMachinesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMachines
        /// </summary>
        /// <remarks>
        /// Get available QEMU/KVM machine types.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCapabilitiesQemuMachines200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCapabilitiesQemuMachines200Response>> GetNodesSingleCapabilitiesQemuMachinesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCapabilitiesQemuMigration
        /// </summary>
        /// <remarks>
        /// Get node-specific QEMU migration capabilities of the node. Requires the &#39;Sys.Audit&#39; permission on &#39;/nodes/&lt;node&gt;&#39;.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCapabilitiesQemuMigration200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCapabilitiesQemuMigration200Response> GetNodesSingleCapabilitiesQemuMigrationAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMigration
        /// </summary>
        /// <remarks>
        /// Get node-specific QEMU migration capabilities of the node. Requires the &#39;Sys.Audit&#39; permission on &#39;/nodes/&lt;node&gt;&#39;.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCapabilitiesQemuMigration200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCapabilitiesQemuMigration200Response>> GetNodesSingleCapabilitiesQemuMigrationWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCeph
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCephAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCeph
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleCephWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephCfg
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCephCfgAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephCfg
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleCephCfgWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephCfgDb
        /// </summary>
        /// <remarks>
        /// Get the Ceph configuration database.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephCfgDb200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephCfgDb200Response> GetNodesSingleCephCfgDbAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephCfgDb
        /// </summary>
        /// <remarks>
        /// Get the Ceph configuration database.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephCfgDb200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephCfgDb200Response>> GetNodesSingleCephCfgDbWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephCfgRaw
        /// </summary>
        /// <remarks>
        /// Get the Ceph configuration file.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleCephCfgRawAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephCfgRaw
        /// </summary>
        /// <remarks>
        /// Get the Ceph configuration file.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetNodesSingleCephCfgRawWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephCfgValue
        /// </summary>
        /// <remarks>
        /// Get configured values from either the config file or config DB.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephCfgValue200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephCfgValue200Response> GetNodesSingleCephCfgValueAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephCfgValue
        /// </summary>
        /// <remarks>
        /// Get configured values from either the config file or config DB.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephCfgValue200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephCfgValue200Response>> GetNodesSingleCephCfgValueWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephCmdsafety
        /// </summary>
        /// <remarks>
        /// Heuristical check if it is safe to perform an action.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephCmdsafety200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephCmdsafety200Response> GetNodesSingleCephCmdsafetyAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephCmdsafety
        /// </summary>
        /// <remarks>
        /// Heuristical check if it is safe to perform an action.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephCmdsafety200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephCmdsafety200Response>> GetNodesSingleCephCmdsafetyWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephCrush
        /// </summary>
        /// <remarks>
        /// Get OSD crush map
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleCephCrushAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephCrush
        /// </summary>
        /// <remarks>
        /// Get OSD crush map
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetNodesSingleCephCrushWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephFs
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephFs200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephFs200Response> GetNodesSingleCephFsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephFs
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephFs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephFs200Response>> GetNodesSingleCephFsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephLog
        /// </summary>
        /// <remarks>
        /// Read ceph log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleCephLogAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephLog
        /// </summary>
        /// <remarks>
        /// Read ceph log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleCephLogWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephMds
        /// </summary>
        /// <remarks>
        /// MDS directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephMds200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephMds200Response> GetNodesSingleCephMdsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephMds
        /// </summary>
        /// <remarks>
        /// MDS directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephMds200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephMds200Response>> GetNodesSingleCephMdsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephMgr
        /// </summary>
        /// <remarks>
        /// MGR directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephMgr200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephMgr200Response> GetNodesSingleCephMgrAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephMgr
        /// </summary>
        /// <remarks>
        /// MGR directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephMgr200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephMgr200Response>> GetNodesSingleCephMgrWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephMon
        /// </summary>
        /// <remarks>
        /// Get Ceph monitor list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephMon200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephMon200Response> GetNodesSingleCephMonAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephMon
        /// </summary>
        /// <remarks>
        /// Get Ceph monitor list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephMon200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephMon200Response>> GetNodesSingleCephMonWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephOsd
        /// </summary>
        /// <remarks>
        /// Get Ceph osd list/tree.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleCephOsdAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephOsd
        /// </summary>
        /// <remarks>
        /// Get Ceph osd list/tree.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleCephOsdWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephOsdSingle
        /// </summary>
        /// <remarks>
        /// OSD index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCephOsdSingleAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephOsdSingle
        /// </summary>
        /// <remarks>
        /// OSD index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleCephOsdSingleWithHttpInfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephOsdSingleLvinfo
        /// </summary>
        /// <remarks>
        /// Get OSD volume details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephOsdSingleLvinfo200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephOsdSingleLvinfo200Response> GetNodesSingleCephOsdSingleLvinfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephOsdSingleLvinfo
        /// </summary>
        /// <remarks>
        /// Get OSD volume details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephOsdSingleLvinfo200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephOsdSingleLvinfo200Response>> GetNodesSingleCephOsdSingleLvinfoWithHttpInfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephOsdSingleMetadata
        /// </summary>
        /// <remarks>
        /// Get OSD details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephOsdSingleMetadata200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephOsdSingleMetadata200Response> GetNodesSingleCephOsdSingleMetadataAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephOsdSingleMetadata
        /// </summary>
        /// <remarks>
        /// Get OSD details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephOsdSingleMetadata200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephOsdSingleMetadata200Response>> GetNodesSingleCephOsdSingleMetadataWithHttpInfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephPool
        /// </summary>
        /// <remarks>
        /// List all pools and their settings (which are settable by the POST/PUT endpoints).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephPool200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephPool200Response> GetNodesSingleCephPoolAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephPool
        /// </summary>
        /// <remarks>
        /// List all pools and their settings (which are settable by the POST/PUT endpoints).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephPool200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephPool200Response>> GetNodesSingleCephPoolWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Pool index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCephPoolSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Pool index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleCephPoolSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephPoolSingleStatus
        /// </summary>
        /// <remarks>
        /// Show the current pool status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephPoolSingleStatus200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephPoolSingleStatus200Response> GetNodesSingleCephPoolSingleStatusAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephPoolSingleStatus
        /// </summary>
        /// <remarks>
        /// Show the current pool status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephPoolSingleStatus200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephPoolSingleStatus200Response>> GetNodesSingleCephPoolSingleStatusWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephRules
        /// </summary>
        /// <remarks>
        /// List ceph rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephRules200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCephRules200Response> GetNodesSingleCephRulesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephRules
        /// </summary>
        /// <remarks>
        /// List ceph rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephRules200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCephRules200Response>> GetNodesSingleCephRulesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCephStatus
        /// </summary>
        /// <remarks>
        /// Get ceph status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleCephStatusAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCephStatus
        /// </summary>
        /// <remarks>
        /// Get ceph status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleCephStatusWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCertificates
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCertificatesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCertificates
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleCertificatesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCertificatesAcme
        /// </summary>
        /// <remarks>
        /// ACME index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCertificatesAcmeAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCertificatesAcme
        /// </summary>
        /// <remarks>
        /// ACME index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleCertificatesAcmeWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleCertificatesInfo
        /// </summary>
        /// <remarks>
        /// Get information about node&#39;s certificates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCertificatesInfo200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleCertificatesInfo200Response> GetNodesSingleCertificatesInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleCertificatesInfo
        /// </summary>
        /// <remarks>
        /// Get information about node&#39;s certificates.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCertificatesInfo200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleCertificatesInfo200Response>> GetNodesSingleCertificatesInfoWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleConfig
        /// </summary>
        /// <remarks>
        /// Get node configuration options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleConfig200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleConfig200Response> GetNodesSingleConfigAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleConfig
        /// </summary>
        /// <remarks>
        /// Get node configuration options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleConfig200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleConfig200Response>> GetNodesSingleConfigWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDisks
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleDisksAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDisks
        /// </summary>
        /// <remarks>
        /// Node index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleDisksWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDisksDirectory
        /// </summary>
        /// <remarks>
        /// PVE Managed Directory storages.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksDirectory200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleDisksDirectory200Response> GetNodesSingleDisksDirectoryAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDisksDirectory
        /// </summary>
        /// <remarks>
        /// PVE Managed Directory storages.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksDirectory200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleDisksDirectory200Response>> GetNodesSingleDisksDirectoryWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDisksList
        /// </summary>
        /// <remarks>
        /// List local disks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksList200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleDisksList200Response> GetNodesSingleDisksListAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDisksList
        /// </summary>
        /// <remarks>
        /// List local disks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksList200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleDisksList200Response>> GetNodesSingleDisksListWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDisksLvm
        /// </summary>
        /// <remarks>
        /// List LVM Volume Groups
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksLvm200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleDisksLvm200Response> GetNodesSingleDisksLvmAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDisksLvm
        /// </summary>
        /// <remarks>
        /// List LVM Volume Groups
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksLvm200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleDisksLvm200Response>> GetNodesSingleDisksLvmWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDisksLvmthin
        /// </summary>
        /// <remarks>
        /// List LVM thinpools
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksLvmthin200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleDisksLvmthin200Response> GetNodesSingleDisksLvmthinAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDisksLvmthin
        /// </summary>
        /// <remarks>
        /// List LVM thinpools
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksLvmthin200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleDisksLvmthin200Response>> GetNodesSingleDisksLvmthinWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDisksSmart
        /// </summary>
        /// <remarks>
        /// Get SMART Health of a disk.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksSmart200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleDisksSmart200Response> GetNodesSingleDisksSmartAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDisksSmart
        /// </summary>
        /// <remarks>
        /// Get SMART Health of a disk.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksSmart200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleDisksSmart200Response>> GetNodesSingleDisksSmartWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDisksZfs
        /// </summary>
        /// <remarks>
        /// List Zpools.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksZfs200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleDisksZfs200Response> GetNodesSingleDisksZfsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDisksZfs
        /// </summary>
        /// <remarks>
        /// List Zpools.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksZfs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleDisksZfs200Response>> GetNodesSingleDisksZfsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDisksZfsSingle
        /// </summary>
        /// <remarks>
        /// Get details about a zpool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksZfsSingle200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleDisksZfsSingle200Response> GetNodesSingleDisksZfsSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDisksZfsSingle
        /// </summary>
        /// <remarks>
        /// Get details about a zpool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksZfsSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleDisksZfsSingle200Response>> GetNodesSingleDisksZfsSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleDns
        /// </summary>
        /// <remarks>
        /// Read DNS settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDns200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleDns200Response> GetNodesSingleDnsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleDns
        /// </summary>
        /// <remarks>
        /// Read DNS settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDns200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleDns200Response>> GetNodesSingleDnsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleFirewallLogAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleFirewallLogWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleHardware
        /// </summary>
        /// <remarks>
        /// Index of hardware types
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHardware200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleHardware200Response> GetNodesSingleHardwareAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleHardware
        /// </summary>
        /// <remarks>
        /// Index of hardware types
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHardware200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleHardware200Response>> GetNodesSingleHardwareWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleHardwarePci
        /// </summary>
        /// <remarks>
        /// List local PCI devices.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHardwarePci200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleHardwarePci200Response> GetNodesSingleHardwarePciAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleHardwarePci
        /// </summary>
        /// <remarks>
        /// List local PCI devices.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHardwarePci200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleHardwarePci200Response>> GetNodesSingleHardwarePciWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleHardwarePciSingle
        /// </summary>
        /// <remarks>
        /// Index of available pci methods
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScan200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScan200Response> GetNodesSingleHardwarePciSingleAsync(string node, string pciIdOrMapping, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleHardwarePciSingle
        /// </summary>
        /// <remarks>
        /// Index of available pci methods
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScan200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScan200Response>> GetNodesSingleHardwarePciSingleWithHttpInfoAsync(string node, string pciIdOrMapping, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleHardwarePciSingleMdev
        /// </summary>
        /// <remarks>
        /// List mediated device types for given PCI device.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHardwarePciSingleMdev200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleHardwarePciSingleMdev200Response> GetNodesSingleHardwarePciSingleMdevAsync(string node, string pciIdOrMapping, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleHardwarePciSingleMdev
        /// </summary>
        /// <remarks>
        /// List mediated device types for given PCI device.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHardwarePciSingleMdev200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleHardwarePciSingleMdev200Response>> GetNodesSingleHardwarePciSingleMdevWithHttpInfoAsync(string node, string pciIdOrMapping, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleHardwareUsb
        /// </summary>
        /// <remarks>
        /// List local USB devices.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHardwareUsb200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleHardwareUsb200Response> GetNodesSingleHardwareUsbAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleHardwareUsb
        /// </summary>
        /// <remarks>
        /// List local USB devices.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHardwareUsb200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleHardwareUsb200Response>> GetNodesSingleHardwareUsbWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleHosts
        /// </summary>
        /// <remarks>
        /// Get the content of /etc/hosts.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHosts200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleHosts200Response> GetNodesSingleHostsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleHosts
        /// </summary>
        /// <remarks>
        /// Get the content of /etc/hosts.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHosts200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleHosts200Response>> GetNodesSingleHostsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleJournal
        /// </summary>
        /// <remarks>
        /// Read Journal
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleJournal200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleJournal200Response> GetNodesSingleJournalAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleJournal
        /// </summary>
        /// <remarks>
        /// Read Journal
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleJournal200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleJournal200Response>> GetNodesSingleJournalWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxc
        /// </summary>
        /// <remarks>
        /// LXC container index (per node).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxc200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleLxc200Response> GetNodesSingleLxcAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxc
        /// </summary>
        /// <remarks>
        /// LXC container index (per node).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxc200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleLxc200Response>> GetNodesSingleLxcWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingle
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleLxcSingleAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingle
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleLxcSingleWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleConfig
        /// </summary>
        /// <remarks>
        /// Get container configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleConfig200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleLxcSingleConfig200Response> GetNodesSingleLxcSingleConfigAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleConfig
        /// </summary>
        /// <remarks>
        /// Get container configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleConfig200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleLxcSingleConfig200Response>> GetNodesSingleLxcSingleConfigWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFeature
        /// </summary>
        /// <remarks>
        /// Check if feature for virtual machine is available.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleFeature200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleLxcSingleFeature200Response> GetNodesSingleLxcSingleFeatureAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFeature
        /// </summary>
        /// <remarks>
        /// Check if feature for virtual machine is available.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleFeature200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleLxcSingleFeature200Response>> GetNodesSingleLxcSingleFeatureWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleLxcSingleFirewallAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleLxcSingleFirewallWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallAliases200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallAliases200Response> GetNodesSingleLxcSingleFirewallAliasesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallAliases200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallAliases200Response>> GetNodesSingleLxcSingleFirewallAliasesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleFirewallAliasesSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpset
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSets200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallIPSets200Response> GetNodesSingleLxcSingleFirewallIpsetAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpset
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSets200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallIPSets200Response>> GetNodesSingleLxcSingleFirewallIpsetWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSet200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallIPSet200Response> GetNodesSingleLxcSingleFirewallIpsetSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingle
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSet200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallIPSet200Response>> GetNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleFirewallIpsetSingleSingleAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleLxcSingleFirewallLogAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleLxcSingleFirewallLogWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get VM firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMFirewallOptions200Response</returns>
        System.Threading.Tasks.Task<GetVMFirewallOptions200Response> GetNodesSingleLxcSingleFirewallOptionsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get VM firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMFirewallOptions200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMFirewallOptions200Response>> GetNodesSingleLxcSingleFirewallOptionsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallRefs200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallRefs200Response> GetNodesSingleLxcSingleFirewallRefsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallRefs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallRefs200Response>> GetNodesSingleLxcSingleFirewallRefsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetNodesSingleLxcSingleFirewallRulesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRules200Response>> GetNodesSingleLxcSingleFirewallRulesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetNodesSingleLxcSingleFirewallRulesSingleAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRule200Response>> GetNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleInterfaces
        /// </summary>
        /// <remarks>
        /// Get IP addresses of the specified container interface.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleInterfaces200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleLxcSingleInterfaces200Response> GetNodesSingleLxcSingleInterfacesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleInterfaces
        /// </summary>
        /// <remarks>
        /// Get IP addresses of the specified container interface.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleInterfaces200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleLxcSingleInterfaces200Response>> GetNodesSingleLxcSingleInterfacesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleMigrate
        /// </summary>
        /// <remarks>
        /// Get preconditions for migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleMigrate200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleLxcSingleMigrate200Response> GetNodesSingleLxcSingleMigrateAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleMigrate
        /// </summary>
        /// <remarks>
        /// Get preconditions for migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleMigrate200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleLxcSingleMigrate200Response>> GetNodesSingleLxcSingleMigrateWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleMtunnelwebsocket
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleMtunnelwebsocket200Response> GetNodesSingleLxcSingleMtunnelwebsocketAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleMtunnelwebsocket
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleMtunnelwebsocket200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response>> GetNodesSingleLxcSingleMtunnelwebsocketWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSinglePending
        /// </summary>
        /// <remarks>
        /// Get container configuration, including pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSinglePending200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleLxcSinglePending200Response> GetNodesSingleLxcSinglePendingAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSinglePending
        /// </summary>
        /// <remarks>
        /// Get container configuration, including pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSinglePending200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleLxcSinglePending200Response>> GetNodesSingleLxcSinglePendingWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleRrd
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMRRD200Response</returns>
        System.Threading.Tasks.Task<GetVMRRD200Response> GetNodesSingleLxcSingleRrdAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleRrd
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMRRD200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMRRD200Response>> GetNodesSingleLxcSingleRrdWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleRrddata
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleLxcSingleRrddataAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleRrddata
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleLxcSingleRrddataWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleSnapshot
        /// </summary>
        /// <remarks>
        /// List all snapshots.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleSnapshot200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleLxcSingleSnapshot200Response> GetNodesSingleLxcSingleSnapshotAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleSnapshot
        /// </summary>
        /// <remarks>
        /// List all snapshots.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleSnapshot200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleLxcSingleSnapshot200Response>> GetNodesSingleLxcSingleSnapshotWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleLxcSingleSnapshotSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleLxcSingleSnapshotSingleAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleLxcSingleSnapshotSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleLxcSingleSnapshotSingleWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingleConfig
        /// </summary>
        /// <remarks>
        /// Get snapshot configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleSnapshotSingleConfigAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingleConfig
        /// </summary>
        /// <remarks>
        /// Get snapshot configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleStatus
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleLxcSingleStatusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleStatus
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleLxcSingleStatusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleStatusCurrent
        /// </summary>
        /// <remarks>
        /// Get virtual machine status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleStatusCurrent200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleLxcSingleStatusCurrent200Response> GetNodesSingleLxcSingleStatusCurrentAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleStatusCurrent
        /// </summary>
        /// <remarks>
        /// Get virtual machine status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleStatusCurrent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleLxcSingleStatusCurrent200Response>> GetNodesSingleLxcSingleStatusCurrentWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleLxcSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleLxcSingleVncwebsocketAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleLxcSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleVncwebsocket200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response>> GetNodesSingleLxcSingleVncwebsocketWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleNetstat
        /// </summary>
        /// <remarks>
        /// Read tap/vm network device interface counters
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleNetstatAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleNetstat
        /// </summary>
        /// <remarks>
        /// Read tap/vm network device interface counters
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleNetstatWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// List available networks
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleNetwork200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleNetwork200Response> GetNodesSingleNetworkAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// List available networks
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleNetwork200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleNetwork200Response>> GetNodesSingleNetworkWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Read network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleNetworkSingle200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleNetworkSingle200Response> GetNodesSingleNetworkSingleAsync(string iface, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Read network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleNetworkSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleNetworkSingle200Response>> GetNodesSingleNetworkSingleWithHttpInfoAsync(string iface, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgent
        /// </summary>
        /// <remarks>
        /// QEMU Guest Agent command index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgent
        /// </summary>
        /// <remarks>
        /// QEMU Guest Agent command index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentExecstatus
        /// </summary>
        /// <remarks>
        /// Gets the status of the given pid started by the guest-agent
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleAgentExecstatus200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleAgentExecstatus200Response> GetNodesSingleQemuSingleAgentExecstatusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentExecstatus
        /// </summary>
        /// <remarks>
        /// Gets the status of the given pid started by the guest-agent
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleAgentExecstatus200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleAgentExecstatus200Response>> GetNodesSingleQemuSingleAgentExecstatusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentFileread
        /// </summary>
        /// <remarks>
        /// Reads the given file via guest agent. Is limited to 16777216 bytes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleAgentFileread200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleAgentFileread200Response> GetNodesSingleQemuSingleAgentFilereadAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentFileread
        /// </summary>
        /// <remarks>
        /// Reads the given file via guest agent. Is limited to 16777216 bytes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleAgentFileread200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleAgentFileread200Response>> GetNodesSingleQemuSingleAgentFilereadWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetfsinfo
        /// </summary>
        /// <remarks>
        /// Execute get-fsinfo.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetfsinfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetfsinfo
        /// </summary>
        /// <remarks>
        /// Execute get-fsinfo.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetfsinfoWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGethostname
        /// </summary>
        /// <remarks>
        /// Execute get-host-name.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGethostnameAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGethostname
        /// </summary>
        /// <remarks>
        /// Execute get-host-name.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGethostnameWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblockinfo
        /// </summary>
        /// <remarks>
        /// Execute get-memory-block-info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetmemoryblockinfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblockinfo
        /// </summary>
        /// <remarks>
        /// Execute get-memory-block-info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetmemoryblockinfoWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblocks
        /// </summary>
        /// <remarks>
        /// Execute get-memory-blocks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetmemoryblocksAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblocks
        /// </summary>
        /// <remarks>
        /// Execute get-memory-blocks.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetmemoryblocksWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetosinfo
        /// </summary>
        /// <remarks>
        /// Execute get-osinfo.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetosinfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetosinfo
        /// </summary>
        /// <remarks>
        /// Execute get-osinfo.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetosinfoWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGettime
        /// </summary>
        /// <remarks>
        /// Execute get-time.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGettimeAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettime
        /// </summary>
        /// <remarks>
        /// Execute get-time.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGettimeWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGettimezone
        /// </summary>
        /// <remarks>
        /// Execute get-timezone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGettimezoneAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettimezone
        /// </summary>
        /// <remarks>
        /// Execute get-timezone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGettimezoneWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetusers
        /// </summary>
        /// <remarks>
        /// Execute get-users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetusersAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetusers
        /// </summary>
        /// <remarks>
        /// Execute get-users.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetusersWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentGetvcpus
        /// </summary>
        /// <remarks>
        /// Execute get-vcpus.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetvcpusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetvcpus
        /// </summary>
        /// <remarks>
        /// Execute get-vcpus.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetvcpusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentInfo
        /// </summary>
        /// <remarks>
        /// Execute info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentInfo
        /// </summary>
        /// <remarks>
        /// Execute info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentInfoWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleAgentNetworkgetinterfaces
        /// </summary>
        /// <remarks>
        /// Execute network-get-interfaces.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentNetworkgetinterfacesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleAgentNetworkgetinterfaces
        /// </summary>
        /// <remarks>
        /// Execute network-get-interfaces.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentNetworkgetinterfacesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleCloudinit
        /// </summary>
        /// <remarks>
        /// Get the cloudinit configuration with both current and pending values.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleCloudinit200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleCloudinit200Response> GetNodesSingleQemuSingleCloudinitAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleCloudinit
        /// </summary>
        /// <remarks>
        /// Get the cloudinit configuration with both current and pending values.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleCloudinit200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleCloudinit200Response>> GetNodesSingleQemuSingleCloudinitWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleCloudinitDump
        /// </summary>
        /// <remarks>
        /// Get automatically generated cloudinit config.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleQemuSingleCloudinitDumpAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleCloudinitDump
        /// </summary>
        /// <remarks>
        /// Get automatically generated cloudinit config.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetNodesSingleQemuSingleCloudinitDumpWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleFeature
        /// </summary>
        /// <remarks>
        /// Check if feature for virtual machine is available.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFeature200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleFeature200Response> GetNodesSingleQemuSingleFeatureAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleFeature
        /// </summary>
        /// <remarks>
        /// Check if feature for virtual machine is available.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFeature200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleFeature200Response>> GetNodesSingleQemuSingleFeatureWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallAliases200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallAliases200Response> GetNodesSingleQemuSingleFirewallAliasesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliases
        /// </summary>
        /// <remarks>
        /// List aliases
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallAliases200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallAliases200Response>> GetNodesSingleQemuSingleFirewallAliasesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleQemuSingleFirewallAliasesSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Read alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleQemuSingleFirewallLogAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleFirewallLog
        /// </summary>
        /// <remarks>
        /// Read firewall log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleQemuSingleFirewallLogWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallRefs200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallRefs200Response> GetNodesSingleQemuSingleFirewallRefsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleFirewallRefs
        /// </summary>
        /// <remarks>
        /// Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallRefs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallRefs200Response>> GetNodesSingleQemuSingleFirewallRefsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleMtunnelwebsocket
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleMtunnelwebsocket200Response> GetNodesSingleQemuSingleMtunnelwebsocketAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleMtunnelwebsocket
        /// </summary>
        /// <remarks>
        /// Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleMtunnelwebsocket200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response>> GetNodesSingleQemuSingleMtunnelwebsocketWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQemuSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleQemuSingleVncwebsocketAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQemuSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleVncwebsocket200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response>> GetNodesSingleQemuSingleVncwebsocketWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQueryocirepotags
        /// </summary>
        /// <remarks>
        /// List all tags for an OCI repository reference.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleJournal200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleJournal200Response> GetNodesSingleQueryocirepotagsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQueryocirepotags
        /// </summary>
        /// <remarks>
        /// List all tags for an OCI repository reference.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleJournal200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleJournal200Response>> GetNodesSingleQueryocirepotagsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleQueryurlmetadata
        /// </summary>
        /// <remarks>
        /// Query metadata of an URL: file size, file name and mime type.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQueryurlmetadata200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQueryurlmetadata200Response> GetNodesSingleQueryurlmetadataAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleQueryurlmetadata
        /// </summary>
        /// <remarks>
        /// Query metadata of an URL: file size, file name and mime type.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQueryurlmetadata200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQueryurlmetadata200Response>> GetNodesSingleQueryurlmetadataWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleReplication
        /// </summary>
        /// <remarks>
        /// List status of all replication jobs on this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHa200Response</returns>
        System.Threading.Tasks.Task<GetClusterHa200Response> GetNodesSingleReplicationAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleReplication
        /// </summary>
        /// <remarks>
        /// List status of all replication jobs on this node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHa200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterHa200Response>> GetNodesSingleReplicationWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleReplicationSingle
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleReplicationSingleAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleReplicationSingle
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleReplicationSingleWithHttpInfoAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleReplicationSingleLog
        /// </summary>
        /// <remarks>
        /// Read replication job log.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleReplicationSingleLogAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleReplicationSingleLog
        /// </summary>
        /// <remarks>
        /// Read replication job log.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleReplicationSingleLogWithHttpInfoAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleReplicationSingleStatus
        /// </summary>
        /// <remarks>
        /// Get replication job status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleReplicationSingleStatusAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleReplicationSingleStatus
        /// </summary>
        /// <remarks>
        /// Get replication job status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleReplicationSingleStatusWithHttpInfoAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleReport
        /// </summary>
        /// <remarks>
        /// Gather various systems information about a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleReportAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleReport
        /// </summary>
        /// <remarks>
        /// Gather various systems information about a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetNodesSingleReportWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleScan
        /// </summary>
        /// <remarks>
        /// Index of available scan methods
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScan200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScan200Response> GetNodesSingleScanAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleScan
        /// </summary>
        /// <remarks>
        /// Index of available scan methods
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScan200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScan200Response>> GetNodesSingleScanWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleScanCifs
        /// </summary>
        /// <remarks>
        /// Scan remote CIFS server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanCifs200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScanCifs200Response> GetNodesSingleScanCifsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleScanCifs
        /// </summary>
        /// <remarks>
        /// Scan remote CIFS server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanCifs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScanCifs200Response>> GetNodesSingleScanCifsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleScanIscsi
        /// </summary>
        /// <remarks>
        /// Scan remote iSCSI server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanIscsi200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScanIscsi200Response> GetNodesSingleScanIscsiAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleScanIscsi
        /// </summary>
        /// <remarks>
        /// Scan remote iSCSI server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanIscsi200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScanIscsi200Response>> GetNodesSingleScanIscsiWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleScanLvm
        /// </summary>
        /// <remarks>
        /// List local LVM volume groups.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanLvm200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScanLvm200Response> GetNodesSingleScanLvmAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleScanLvm
        /// </summary>
        /// <remarks>
        /// List local LVM volume groups.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanLvm200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScanLvm200Response>> GetNodesSingleScanLvmWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleScanLvmthin
        /// </summary>
        /// <remarks>
        /// List local LVM Thin Pools.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanLvmthin200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScanLvmthin200Response> GetNodesSingleScanLvmthinAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleScanLvmthin
        /// </summary>
        /// <remarks>
        /// List local LVM Thin Pools.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanLvmthin200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScanLvmthin200Response>> GetNodesSingleScanLvmthinWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleScanNfs
        /// </summary>
        /// <remarks>
        /// Scan remote NFS server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanNfs200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScanNfs200Response> GetNodesSingleScanNfsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleScanNfs
        /// </summary>
        /// <remarks>
        /// Scan remote NFS server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanNfs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScanNfs200Response>> GetNodesSingleScanNfsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleScanPbs
        /// </summary>
        /// <remarks>
        /// Scan remote Proxmox Backup Server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanPbs200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScanPbs200Response> GetNodesSingleScanPbsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleScanPbs
        /// </summary>
        /// <remarks>
        /// Scan remote Proxmox Backup Server.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanPbs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScanPbs200Response>> GetNodesSingleScanPbsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleScanZfs
        /// </summary>
        /// <remarks>
        /// Scan zfs pool list on local node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanZfs200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleScanZfs200Response> GetNodesSingleScanZfsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleScanZfs
        /// </summary>
        /// <remarks>
        /// Scan zfs pool list on local node.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanZfs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleScanZfs200Response>> GetNodesSingleScanZfsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSdnFabricsSingle
        /// </summary>
        /// <remarks>
        /// Directory index for SDN fabric status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleSdnFabricsSingleAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSdnFabricsSingle
        /// </summary>
        /// <remarks>
        /// Directory index for SDN fabric status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleSdnFabricsSingleWithHttpInfoAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSdnFabricsSingleInterfaces
        /// </summary>
        /// <remarks>
        /// Get all interfaces for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnFabricsSingleInterfaces200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleSdnFabricsSingleInterfaces200Response> GetNodesSingleSdnFabricsSingleInterfacesAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSdnFabricsSingleInterfaces
        /// </summary>
        /// <remarks>
        /// Get all interfaces for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnFabricsSingleInterfaces200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleSdnFabricsSingleInterfaces200Response>> GetNodesSingleSdnFabricsSingleInterfacesWithHttpInfoAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSdnFabricsSingleNeighbors
        /// </summary>
        /// <remarks>
        /// Get all neighbors for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnFabricsSingleNeighbors200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleSdnFabricsSingleNeighbors200Response> GetNodesSingleSdnFabricsSingleNeighborsAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSdnFabricsSingleNeighbors
        /// </summary>
        /// <remarks>
        /// Get all neighbors for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnFabricsSingleNeighbors200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleSdnFabricsSingleNeighbors200Response>> GetNodesSingleSdnFabricsSingleNeighborsWithHttpInfoAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSdnFabricsSingleRoutes
        /// </summary>
        /// <remarks>
        /// Get all routes for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnFabricsSingleRoutes200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleSdnFabricsSingleRoutes200Response> GetNodesSingleSdnFabricsSingleRoutesAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSdnFabricsSingleRoutes
        /// </summary>
        /// <remarks>
        /// Get all routes for a fabric.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnFabricsSingleRoutes200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleSdnFabricsSingleRoutes200Response>> GetNodesSingleSdnFabricsSingleRoutesWithHttpInfoAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSdnVnetsSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleSdnVnetsSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleSdnVnetsSingleAsync(string node, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSdnVnetsSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleSdnVnetsSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleSdnVnetsSingleWithHttpInfoAsync(string node, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSdnVnetsSingleMacvrf
        /// </summary>
        /// <remarks>
        /// Get the MAC VRF for a VNet in an EVPN zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnVnetsSingleMacvrf200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleSdnVnetsSingleMacvrf200Response> GetNodesSingleSdnVnetsSingleMacvrfAsync(string node, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSdnVnetsSingleMacvrf
        /// </summary>
        /// <remarks>
        /// Get the MAC VRF for a VNet in an EVPN zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnVnetsSingleMacvrf200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleSdnVnetsSingleMacvrf200Response>> GetNodesSingleSdnVnetsSingleMacvrfWithHttpInfoAsync(string node, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSdnZonesSingleBridges
        /// </summary>
        /// <remarks>
        /// Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnZonesSingleBridges200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleSdnZonesSingleBridges200Response> GetNodesSingleSdnZonesSingleBridgesAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSdnZonesSingleBridges
        /// </summary>
        /// <remarks>
        /// Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnZonesSingleBridges200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleSdnZonesSingleBridges200Response>> GetNodesSingleSdnZonesSingleBridgesWithHttpInfoAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSdnZonesSingleIpvrf
        /// </summary>
        /// <remarks>
        /// Get the IP VRF of an EVPN zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnZonesSingleIpvrf200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleSdnZonesSingleIpvrf200Response> GetNodesSingleSdnZonesSingleIpvrfAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSdnZonesSingleIpvrf
        /// </summary>
        /// <remarks>
        /// Get the IP VRF of an EVPN zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnZonesSingleIpvrf200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleSdnZonesSingleIpvrf200Response>> GetNodesSingleSdnZonesSingleIpvrfWithHttpInfoAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleServices
        /// </summary>
        /// <remarks>
        /// Service list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleServices200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleServices200Response> GetNodesSingleServicesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleServices
        /// </summary>
        /// <remarks>
        /// Service list.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleServices200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleServices200Response>> GetNodesSingleServicesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleServicesSingle
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleServicesSingleAsync(string node, string service, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleServicesSingle
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleServicesSingleWithHttpInfoAsync(string node, string service, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleServicesSingleState
        /// </summary>
        /// <remarks>
        /// Read service properties
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleServicesSingleState200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleServicesSingleState200Response> GetNodesSingleServicesSingleStateAsync(string node, string service, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleServicesSingleState
        /// </summary>
        /// <remarks>
        /// Read service properties
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleServicesSingleState200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleServicesSingleState200Response>> GetNodesSingleServicesSingleStateWithHttpInfoAsync(string node, string service, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStatus
        /// </summary>
        /// <remarks>
        /// Read node status
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStatus200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStatus200Response> GetNodesSingleStatusAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStatus
        /// </summary>
        /// <remarks>
        /// Read node status
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStatus200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStatus200Response>> GetNodesSingleStatusWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorage
        /// </summary>
        /// <remarks>
        /// Get status for all datastores.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorage200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStorage200Response> GetNodesSingleStorageAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorage
        /// </summary>
        /// <remarks>
        /// Get status for all datastores.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorage200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStorage200Response>> GetNodesSingleStorageWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleStorageSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleStorageSingleAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingle
        /// </summary>
        /// <remarks>
        /// getNodesSingleStorageSingle
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleStorageSingleWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingleContent
        /// </summary>
        /// <remarks>
        /// List storage content.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleContent200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStorageSingleContent200Response> GetNodesSingleStorageSingleContentAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingleContent
        /// </summary>
        /// <remarks>
        /// List storage content.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleContent200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStorageSingleContent200Response>> GetNodesSingleStorageSingleContentWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Get volume attributes
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleContentSingle200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStorageSingleContentSingle200Response> GetNodesSingleStorageSingleContentSingleAsync(string node, string storage, string volume, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Get volume attributes
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleContentSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStorageSingleContentSingle200Response>> GetNodesSingleStorageSingleContentSingleWithHttpInfoAsync(string node, string storage, string volume, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreDownload
        /// </summary>
        /// <remarks>
        /// Extract a file or directory (as zip archive) from a PBS backup.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleFilerestoreDownload200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStorageSingleFilerestoreDownload200Response> GetNodesSingleStorageSingleFilerestoreDownloadAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreDownload
        /// </summary>
        /// <remarks>
        /// Extract a file or directory (as zip archive) from a PBS backup.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleFilerestoreDownload200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStorageSingleFilerestoreDownload200Response>> GetNodesSingleStorageSingleFilerestoreDownloadWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreList
        /// </summary>
        /// <remarks>
        /// List files and directories for single file restore under the given path.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleFilerestoreList200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStorageSingleFilerestoreList200Response> GetNodesSingleStorageSingleFilerestoreListAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreList
        /// </summary>
        /// <remarks>
        /// List files and directories for single file restore under the given path.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleFilerestoreList200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStorageSingleFilerestoreList200Response>> GetNodesSingleStorageSingleFilerestoreListWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingleImportmetadata
        /// </summary>
        /// <remarks>
        /// Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleImportmetadata200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStorageSingleImportmetadata200Response> GetNodesSingleStorageSingleImportmetadataAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingleImportmetadata
        /// </summary>
        /// <remarks>
        /// Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleImportmetadata200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStorageSingleImportmetadata200Response>> GetNodesSingleStorageSingleImportmetadataWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSinglePrunebackups
        /// </summary>
        /// <remarks>
        /// Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSinglePrunebackups200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStorageSinglePrunebackups200Response> GetNodesSingleStorageSinglePrunebackupsAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSinglePrunebackups
        /// </summary>
        /// <remarks>
        /// Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSinglePrunebackups200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStorageSinglePrunebackups200Response>> GetNodesSingleStorageSinglePrunebackupsWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingleRrd
        /// </summary>
        /// <remarks>
        /// Read storage RRD statistics (returns PNG).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMRRD200Response</returns>
        System.Threading.Tasks.Task<GetVMRRD200Response> GetNodesSingleStorageSingleRrdAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingleRrd
        /// </summary>
        /// <remarks>
        /// Read storage RRD statistics (returns PNG).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMRRD200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMRRD200Response>> GetNodesSingleStorageSingleRrdWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingleRrddata
        /// </summary>
        /// <remarks>
        /// Read storage RRD statistics.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleStorageSingleRrddataAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingleRrddata
        /// </summary>
        /// <remarks>
        /// Read storage RRD statistics.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetNodesSingleStorageSingleRrddataWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleStorageSingleStatus
        /// </summary>
        /// <remarks>
        /// Read storage status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleStatus200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleStorageSingleStatus200Response> GetNodesSingleStorageSingleStatusAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleStorageSingleStatus
        /// </summary>
        /// <remarks>
        /// Read storage status.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleStatus200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleStorageSingleStatus200Response>> GetNodesSingleStorageSingleStatusWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Read subscription info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSubscription200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleSubscription200Response> GetNodesSingleSubscriptionAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Read subscription info.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSubscription200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleSubscription200Response>> GetNodesSingleSubscriptionWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleSyslog
        /// </summary>
        /// <remarks>
        /// Read system log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleSyslogAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleSyslog
        /// </summary>
        /// <remarks>
        /// Read system log
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleSyslogWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleTime
        /// </summary>
        /// <remarks>
        /// Read server time and time zone settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleTime200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleTime200Response> GetNodesSingleTimeAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleTime
        /// </summary>
        /// <remarks>
        /// Read server time and time zone settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleTime200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleTime200Response>> GetNodesSingleTimeWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleVersion
        /// </summary>
        /// <remarks>
        /// API version details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleVersion200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleVersion200Response> GetNodesSingleVersionAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleVersion
        /// </summary>
        /// <remarks>
        /// API version details
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleVersion200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleVersion200Response>> GetNodesSingleVersionWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleVncwebsocketAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleVncwebsocket
        /// </summary>
        /// <remarks>
        /// Opens a websocket for VNC traffic.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleVncwebsocket200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response>> GetNodesSingleVncwebsocketWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleVzdumpDefaults
        /// </summary>
        /// <remarks>
        /// Get the currently configured vzdump defaults.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleVzdumpDefaults200Response</returns>
        System.Threading.Tasks.Task<GetNodesSingleVzdumpDefaults200Response> GetNodesSingleVzdumpDefaultsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleVzdumpDefaults
        /// </summary>
        /// <remarks>
        /// Get the currently configured vzdump defaults.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleVzdumpDefaults200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetNodesSingleVzdumpDefaults200Response>> GetNodesSingleVzdumpDefaultsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getNodesSingleVzdumpExtractconfig
        /// </summary>
        /// <remarks>
        /// Extract configuration from vzdump backup archive.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleVzdumpExtractconfigAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getNodesSingleVzdumpExtractconfig
        /// </summary>
        /// <remarks>
        /// Extract configuration from vzdump backup archive.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> GetNodesSingleVzdumpExtractconfigWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getPool
        /// </summary>
        /// <remarks>
        /// Get pool configuration (deprecated, no support for nested pools, use &#39;GET /pools/?poolid&#x3D;{poolid}&#39;).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetPool200Response</returns>
        System.Threading.Tasks.Task<GetPool200Response> GetPoolAsync(string poolid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getPool
        /// </summary>
        /// <remarks>
        /// Get pool configuration (deprecated, no support for nested pools, use &#39;GET /pools/?poolid&#x3D;{poolid}&#39;).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetPool200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetPool200Response>> GetPoolWithHttpInfoAsync(string poolid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getPools
        /// </summary>
        /// <remarks>
        /// List pools or get pool configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetPools200Response</returns>
        System.Threading.Tasks.Task<GetPools200Response> GetPoolsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getPools
        /// </summary>
        /// <remarks>
        /// List pools or get pool configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetPools200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetPools200Response>> GetPoolsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getStorage
        /// </summary>
        /// <remarks>
        /// Storage index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetStorage200Response</returns>
        System.Threading.Tasks.Task<GetStorage200Response> GetStorageAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getStorage
        /// </summary>
        /// <remarks>
        /// Storage index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetStorage200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetStorage200Response>> GetStorageWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getStorageSingle
        /// </summary>
        /// <remarks>
        /// Read storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetStorageSingleAsync(string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getStorageSingle
        /// </summary>
        /// <remarks>
        /// Read storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetStorageSingleWithHttpInfoAsync(string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVM
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetVMAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVM
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetVMWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMConfig
        /// </summary>
        /// <remarks>
        /// Get the virtual machine configuration with pending configuration changes applied. Set the &#39;current&#39; parameter to get the current configuration instead.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMConfig200Response</returns>
        System.Threading.Tasks.Task<GetVMConfig200Response> GetVMConfigAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMConfig
        /// </summary>
        /// <remarks>
        /// Get the virtual machine configuration with pending configuration changes applied. Set the &#39;current&#39; parameter to get the current configuration instead.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMConfig200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMConfig200Response>> GetVMConfigWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMConfigPending
        /// </summary>
        /// <remarks>
        /// Get the virtual machine configuration with both current and pending values.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMConfigPending200Response</returns>
        System.Threading.Tasks.Task<GetVMConfigPending200Response> GetVMConfigPendingAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMConfigPending
        /// </summary>
        /// <remarks>
        /// Get the virtual machine configuration with both current and pending values.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMConfigPending200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMConfigPending200Response>> GetVMConfigPendingWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetVMFirewallAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMFirewall
        /// </summary>
        /// <remarks>
        /// Directory index.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetVMFirewallWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSet200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallIPSet200Response> GetVMFirewallIPSetAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMFirewallIPSet
        /// </summary>
        /// <remarks>
        /// List IPSet content
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSet200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallIPSet200Response>> GetVMFirewallIPSetWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetVMFirewallIPSetIPAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Read IP or Network settings from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetVMFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMFirewallIPSets
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSets200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallIPSets200Response> GetVMFirewallIPSetsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMFirewallIPSets
        /// </summary>
        /// <remarks>
        /// List IPSets
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSets200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallIPSets200Response>> GetVMFirewallIPSetsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get VM firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMFirewallOptions200Response</returns>
        System.Threading.Tasks.Task<GetVMFirewallOptions200Response> GetVMFirewallOptionsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMFirewallOptions
        /// </summary>
        /// <remarks>
        /// Get VM firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMFirewallOptions200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMFirewallOptions200Response>> GetVMFirewallOptionsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetVMFirewallRuleAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Get single rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRule200Response>> GetVMFirewallRuleWithHttpInfoAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetVMFirewallRulesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMFirewallRules
        /// </summary>
        /// <remarks>
        /// List rules.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterFirewallGroupRules200Response>> GetVMFirewallRulesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMRRD
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMRRD200Response</returns>
        System.Threading.Tasks.Task<GetVMRRD200Response> GetVMRRDAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMRRD
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics (returns PNG)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMRRD200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMRRD200Response>> GetVMRRDWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMRRDData
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetVMRRDDataAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMRRDData
        /// </summary>
        /// <remarks>
        /// Read VM RRD statistics
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetVMRRDDataWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMSnapshot
        /// </summary>
        /// <remarks>
        /// getVMSnapshot
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        System.Threading.Tasks.Task<GetCluster200Response> GetVMSnapshotAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMSnapshot
        /// </summary>
        /// <remarks>
        /// getVMSnapshot
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetCluster200Response>> GetVMSnapshotWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMSnapshotConfig
        /// </summary>
        /// <remarks>
        /// Get snapshot configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetVMSnapshotConfigAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMSnapshotConfig
        /// </summary>
        /// <remarks>
        /// Get snapshot configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterMetricsServerSingle200Response>> GetVMSnapshotConfigWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMSnapshots
        /// </summary>
        /// <remarks>
        /// List all snapshots.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMSnapshots200Response</returns>
        System.Threading.Tasks.Task<GetVMSnapshots200Response> GetVMSnapshotsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMSnapshots
        /// </summary>
        /// <remarks>
        /// List all snapshots.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMSnapshots200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMSnapshots200Response>> GetVMSnapshotsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMStatus
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetVMStatusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMStatus
        /// </summary>
        /// <remarks>
        /// Directory index
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterSdnFabrics200Response>> GetVMStatusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVMs
        /// </summary>
        /// <remarks>
        /// Virtual machine index (per node).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMs200Response</returns>
        System.Threading.Tasks.Task<GetVMs200Response> GetVMsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVMs
        /// </summary>
        /// <remarks>
        /// Virtual machine index (per node).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMs200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVMs200Response>> GetVMsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// getVersion
        /// </summary>
        /// <remarks>
        /// API version details, including some parts of the global datacenter config.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVersion200Response</returns>
        System.Threading.Tasks.Task<GetVersion200Response> GetVersionAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// getVersion
        /// </summary>
        /// <remarks>
        /// API version details, including some parts of the global datacenter config.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVersion200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetVersion200Response>> GetVersionWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// migrateVM
        /// </summary>
        /// <remarks>
        /// Get preconditions for migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of MigrateVM200Response</returns>
        System.Threading.Tasks.Task<MigrateVM200Response> MigrateVMAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// migrateVM
        /// </summary>
        /// <remarks>
        /// Get preconditions for migration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (MigrateVM200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<MigrateVM200Response>> MigrateVMWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// rebootVM
        /// </summary>
        /// <remarks>
        /// Reboot the VM by shutting it down, and starting it again. Applies pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rebootVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> RebootVMAsync(string node, int vmid, RebootVMRequest rebootVMRequest = default(RebootVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// rebootVM
        /// </summary>
        /// <remarks>
        /// Reboot the VM by shutting it down, and starting it again. Applies pending changes.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rebootVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> RebootVMWithHttpInfoAsync(string node, int vmid, RebootVMRequest rebootVMRequest = default(RebootVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// removeClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> RemoveClusterFirewallGroupRuleAsync(string group, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// removeClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> RemoveClusterFirewallGroupRuleWithHttpInfoAsync(string group, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// removeClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> RemoveClusterFirewallIPSetIPAsync(string cidr, string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// removeClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> RemoveClusterFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// removeClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> RemoveClusterFirewallRuleAsync(int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// removeClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Delete rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> RemoveClusterFirewallRuleWithHttpInfoAsync(int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// removeVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> RemoveVMFirewallIPSetIPAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// removeVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Remove IP or Network from IPSet.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> RemoveVMFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// resetVM
        /// </summary>
        /// <remarks>
        /// Reset virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resetVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> ResetVMAsync(string node, int vmid, ResetVMRequest resetVMRequest = default(ResetVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// resetVM
        /// </summary>
        /// <remarks>
        /// Reset virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resetVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> ResetVMWithHttpInfoAsync(string node, int vmid, ResetVMRequest resetVMRequest = default(ResetVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// resizeVMDisk
        /// </summary>
        /// <remarks>
        /// Extend volume size.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resizeVMDiskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> ResizeVMDiskAsync(string node, int vmid, ResizeVMDiskRequest resizeVMDiskRequest = default(ResizeVMDiskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// resizeVMDisk
        /// </summary>
        /// <remarks>
        /// Extend volume size.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resizeVMDiskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> ResizeVMDiskWithHttpInfoAsync(string node, int vmid, ResizeVMDiskRequest resizeVMDiskRequest = default(ResizeVMDiskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// resumeVM
        /// </summary>
        /// <remarks>
        /// Resume virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resumeVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> ResumeVMAsync(string node, int vmid, ResumeVMRequest resumeVMRequest = default(ResumeVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// resumeVM
        /// </summary>
        /// <remarks>
        /// Resume virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resumeVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> ResumeVMWithHttpInfoAsync(string node, int vmid, ResumeVMRequest resumeVMRequest = default(ResumeVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// rollbackVMSnapshot
        /// </summary>
        /// <remarks>
        /// Rollback VM state to specified snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rollbackVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> RollbackVMSnapshotAsync(string node, string snapname, int vmid, RollbackVMSnapshotRequest rollbackVMSnapshotRequest = default(RollbackVMSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// rollbackVMSnapshot
        /// </summary>
        /// <remarks>
        /// Rollback VM state to specified snapshot.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rollbackVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> RollbackVMSnapshotWithHttpInfoAsync(string node, string snapname, int vmid, RollbackVMSnapshotRequest rollbackVMSnapshotRequest = default(RollbackVMSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// shutdownVM
        /// </summary>
        /// <remarks>
        /// Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="shutdownVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> ShutdownVMAsync(string node, int vmid, ShutdownVMRequest shutdownVMRequest = default(ShutdownVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// shutdownVM
        /// </summary>
        /// <remarks>
        /// Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="shutdownVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> ShutdownVMWithHttpInfoAsync(string node, int vmid, ShutdownVMRequest shutdownVMRequest = default(ShutdownVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// startVM
        /// </summary>
        /// <remarks>
        /// Start virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="startVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> StartVMAsync(string node, int vmid, StartVMRequest startVMRequest = default(StartVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// startVM
        /// </summary>
        /// <remarks>
        /// Start virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="startVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> StartVMWithHttpInfoAsync(string node, int vmid, StartVMRequest startVMRequest = default(StartVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// stopNodeTask
        /// </summary>
        /// <remarks>
        /// Stop a task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> StopNodeTaskAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// stopNodeTask
        /// </summary>
        /// <remarks>
        /// Stop a task.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> StopNodeTaskWithHttpInfoAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// stopVM
        /// </summary>
        /// <remarks>
        /// Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="stopVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> StopVMAsync(string node, int vmid, StopVMRequest stopVMRequest = default(StopVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// stopVM
        /// </summary>
        /// <remarks>
        /// Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="stopVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> StopVMWithHttpInfoAsync(string node, int vmid, StopVMRequest stopVMRequest = default(StopVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// suspendVM
        /// </summary>
        /// <remarks>
        /// Suspend virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="suspendVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> SuspendVMAsync(string node, int vmid, SuspendVMRequest suspendVMRequest = default(SuspendVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// suspendVM
        /// </summary>
        /// <remarks>
        /// Suspend virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="suspendVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> SuspendVMWithHttpInfoAsync(string node, int vmid, SuspendVMRequest suspendVMRequest = default(SuspendVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// unlinkVMDiskImages
        /// </summary>
        /// <remarks>
        /// Unlink/delete disk images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="unlinkVMDiskImagesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UnlinkVMDiskImagesAsync(string node, int vmid, UnlinkVMDiskImagesRequest unlinkVMDiskImagesRequest = default(UnlinkVMDiskImagesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// unlinkVMDiskImages
        /// </summary>
        /// <remarks>
        /// Unlink/delete disk images.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="unlinkVMDiskImagesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UnlinkVMDiskImagesWithHttpInfoAsync(string node, int vmid, UnlinkVMDiskImagesRequest unlinkVMDiskImagesRequest = default(UnlinkVMDiskImagesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessAcl
        /// </summary>
        /// <remarks>
        /// Update Access Control List (add or remove permissions).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessAclRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessAclAsync(UpdateAccessAclRequest updateAccessAclRequest = default(UpdateAccessAclRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessAcl
        /// </summary>
        /// <remarks>
        /// Update Access Control List (add or remove permissions).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessAclRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateAccessAclWithHttpInfoAsync(UpdateAccessAclRequest updateAccessAclRequest = default(UpdateAccessAclRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Update authentication server settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="updateAccessDomainsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessDomainsSingleAsync(string realm, UpdateAccessDomainsSingleRequest updateAccessDomainsSingleRequest = default(UpdateAccessDomainsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessDomainsSingle
        /// </summary>
        /// <remarks>
        /// Update authentication server settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="updateAccessDomainsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateAccessDomainsSingleWithHttpInfoAsync(string realm, UpdateAccessDomainsSingleRequest updateAccessDomainsSingleRequest = default(UpdateAccessDomainsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Update group data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="updateAccessGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessGroupsSingleAsync(string groupid, UpdateAccessGroupsSingleRequest updateAccessGroupsSingleRequest = default(UpdateAccessGroupsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessGroupsSingle
        /// </summary>
        /// <remarks>
        /// Update group data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="updateAccessGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateAccessGroupsSingleWithHttpInfoAsync(string groupid, UpdateAccessGroupsSingleRequest updateAccessGroupsSingleRequest = default(UpdateAccessGroupsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessPassword
        /// </summary>
        /// <remarks>
        /// Change user password.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessPasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessPasswordAsync(UpdateAccessPasswordRequest updateAccessPasswordRequest = default(UpdateAccessPasswordRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessPassword
        /// </summary>
        /// <remarks>
        /// Change user password.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessPasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateAccessPasswordWithHttpInfoAsync(UpdateAccessPasswordRequest updateAccessPasswordRequest = default(UpdateAccessPasswordRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Update an existing role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="updateAccessRolesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessRolesSingleAsync(string roleid, UpdateAccessRolesSingleRequest updateAccessRolesSingleRequest = default(UpdateAccessRolesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessRolesSingle
        /// </summary>
        /// <remarks>
        /// Update an existing role.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="updateAccessRolesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateAccessRolesSingleWithHttpInfoAsync(string roleid, UpdateAccessRolesSingleRequest updateAccessRolesSingleRequest = default(UpdateAccessRolesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Add a TFA entry for a user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessTfaSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessTfaSingleSingleAsync(string id, string userid, UpdateAccessTfaSingleSingleRequest updateAccessTfaSingleSingleRequest = default(UpdateAccessTfaSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessTfaSingleSingle
        /// </summary>
        /// <remarks>
        /// Add a TFA entry for a user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessTfaSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateAccessTfaSingleSingleWithHttpInfoAsync(string id, string userid, UpdateAccessTfaSingleSingleRequest updateAccessTfaSingleSingleRequest = default(UpdateAccessTfaSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Update user configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessUsersSingleAsync(string userid, UpdateAccessUsersSingleRequest updateAccessUsersSingleRequest = default(UpdateAccessUsersSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessUsersSingle
        /// </summary>
        /// <remarks>
        /// Update user configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateAccessUsersSingleWithHttpInfoAsync(string userid, UpdateAccessUsersSingleRequest updateAccessUsersSingleRequest = default(UpdateAccessUsersSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Update API token for a specific user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of UpdateAccessUsersSingleTokenSingle200Response</returns>
        System.Threading.Tasks.Task<UpdateAccessUsersSingleTokenSingle200Response> UpdateAccessUsersSingleTokenSingleAsync(string tokenid, string userid, UpdateAccessUsersSingleTokenSingleRequest updateAccessUsersSingleTokenSingleRequest = default(UpdateAccessUsersSingleTokenSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessUsersSingleTokenSingle
        /// </summary>
        /// <remarks>
        /// Update API token for a specific user.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (UpdateAccessUsersSingleTokenSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<UpdateAccessUsersSingleTokenSingle200Response>> UpdateAccessUsersSingleTokenSingleWithHttpInfoAsync(string tokenid, string userid, UpdateAccessUsersSingleTokenSingleRequest updateAccessUsersSingleTokenSingleRequest = default(UpdateAccessUsersSingleTokenSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateAccessUsersSingleUnlocktfa
        /// </summary>
        /// <remarks>
        /// Unlock a user&#39;s TFA authentication.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterCephFlagsSingle200Response</returns>
        System.Threading.Tasks.Task<GetClusterCephFlagsSingle200Response> UpdateAccessUsersSingleUnlocktfaAsync(string userid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateAccessUsersSingleUnlocktfa
        /// </summary>
        /// <remarks>
        /// Unlock a user&#39;s TFA authentication.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterCephFlagsSingle200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<GetClusterCephFlagsSingle200Response>> UpdateAccessUsersSingleUnlocktfaWithHttpInfoAsync(string userid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterAcmeAccountSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterAcmeAccountSingleAsync(string name, UpdateClusterAcmeAccountSingleRequest updateClusterAcmeAccountSingleRequest = default(UpdateClusterAcmeAccountSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterAcmeAccountSingle
        /// </summary>
        /// <remarks>
        /// Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterAcmeAccountSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterAcmeAccountSingleWithHttpInfoAsync(string name, UpdateClusterAcmeAccountSingleRequest updateClusterAcmeAccountSingleRequest = default(UpdateClusterAcmeAccountSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Update ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterAcmePluginsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterAcmePluginsSingleAsync(string id, UpdateClusterAcmePluginsSingleRequest updateClusterAcmePluginsSingleRequest = default(UpdateClusterAcmePluginsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterAcmePluginsSingle
        /// </summary>
        /// <remarks>
        /// Update ACME plugin configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterAcmePluginsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterAcmePluginsSingleWithHttpInfoAsync(string id, UpdateClusterAcmePluginsSingleRequest updateClusterAcmePluginsSingleRequest = default(UpdateClusterAcmePluginsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Update vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterBackupSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterBackupSingleAsync(string id, UpdateClusterBackupSingleRequest updateClusterBackupSingleRequest = default(UpdateClusterBackupSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterBackupSingle
        /// </summary>
        /// <remarks>
        /// Update vzdump backup job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterBackupSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterBackupSingleWithHttpInfoAsync(string id, UpdateClusterBackupSingleRequest updateClusterBackupSingleRequest = default(UpdateClusterBackupSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterCephFlags
        /// </summary>
        /// <remarks>
        /// Set/Unset multiple ceph flags at once.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterCephFlagsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterCephFlagsAsync(UpdateClusterCephFlagsRequest updateClusterCephFlagsRequest = default(UpdateClusterCephFlagsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterCephFlags
        /// </summary>
        /// <remarks>
        /// Set/Unset multiple ceph flags at once.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterCephFlagsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterCephFlagsWithHttpInfoAsync(UpdateClusterCephFlagsRequest updateClusterCephFlagsRequest = default(UpdateClusterCephFlagsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterCephFlagsSingle
        /// </summary>
        /// <remarks>
        /// Set or clear (unset) a specific ceph flag
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="updateClusterCephFlagsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterCephFlagsSingleAsync(string flag, UpdateClusterCephFlagsSingleRequest updateClusterCephFlagsSingleRequest = default(UpdateClusterCephFlagsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterCephFlagsSingle
        /// </summary>
        /// <remarks>
        /// Set or clear (unset) a specific ceph flag
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="updateClusterCephFlagsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterCephFlagsSingleWithHttpInfoAsync(string flag, UpdateClusterCephFlagsSingleRequest updateClusterCephFlagsSingleRequest = default(UpdateClusterCephFlagsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallAliasesSingleAsync(string name, UpdateClusterFirewallAliasesSingleRequest updateClusterFirewallAliasesSingleRequest = default(UpdateClusterFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallAliasesSingleWithHttpInfoAsync(string name, UpdateClusterFirewallAliasesSingleRequest updateClusterFirewallAliasesSingleRequest = default(UpdateClusterFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallGroupRuleAsync(string group, int pos, UpdateClusterFirewallGroupRuleRequest updateClusterFirewallGroupRuleRequest = default(UpdateClusterFirewallGroupRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterFirewallGroupRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallGroupRuleWithHttpInfoAsync(string group, int pos, UpdateClusterFirewallGroupRuleRequest updateClusterFirewallGroupRuleRequest = default(UpdateClusterFirewallGroupRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallIPSetIPAsync(string cidr, string name, UpdateClusterFirewallIPSetIPRequest updateClusterFirewallIPSetIPRequest = default(UpdateClusterFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, UpdateClusterFirewallIPSetIPRequest updateClusterFirewallIPSetIPRequest = default(UpdateClusterFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallOptionsAsync(UpdateClusterFirewallOptionsRequest updateClusterFirewallOptionsRequest = default(UpdateClusterFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallOptionsWithHttpInfoAsync(UpdateClusterFirewallOptionsRequest updateClusterFirewallOptionsRequest = default(UpdateClusterFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallRuleAsync(int pos, UpdateClusterFirewallRuleRequest updateClusterFirewallRuleRequest = default(UpdateClusterFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallRuleWithHttpInfoAsync(int pos, UpdateClusterFirewallRuleRequest updateClusterFirewallRuleRequest = default(UpdateClusterFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Update ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="updateClusterHaGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterHaGroupsSingleAsync(string group, UpdateClusterHaGroupsSingleRequest updateClusterHaGroupsSingleRequest = default(UpdateClusterHaGroupsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterHaGroupsSingle
        /// </summary>
        /// <remarks>
        /// Update ha group configuration. (deprecated in favor of HA rules)
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="updateClusterHaGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterHaGroupsSingleWithHttpInfoAsync(string group, UpdateClusterHaGroupsSingleRequest updateClusterHaGroupsSingleRequest = default(UpdateClusterHaGroupsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Update resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="updateClusterHaResourcesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterHaResourcesSingleAsync(string sid, UpdateClusterHaResourcesSingleRequest updateClusterHaResourcesSingleRequest = default(UpdateClusterHaResourcesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterHaResourcesSingle
        /// </summary>
        /// <remarks>
        /// Update resource configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="updateClusterHaResourcesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterHaResourcesSingleWithHttpInfoAsync(string sid, UpdateClusterHaResourcesSingleRequest updateClusterHaResourcesSingleRequest = default(UpdateClusterHaResourcesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Update HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="updateClusterHaRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterHaRulesSingleAsync(string rule, UpdateClusterHaRulesSingleRequest updateClusterHaRulesSingleRequest = default(UpdateClusterHaRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterHaRulesSingle
        /// </summary>
        /// <remarks>
        /// Update HA rule.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="updateClusterHaRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterHaRulesSingleWithHttpInfoAsync(string rule, UpdateClusterHaRulesSingleRequest updateClusterHaRulesSingleRequest = default(UpdateClusterHaRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Update realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterJobsRealmsyncSingleAsync(string id, UpdateClusterJobsRealmsyncSingleRequest updateClusterJobsRealmsyncSingleRequest = default(UpdateClusterJobsRealmsyncSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterJobsRealmsyncSingle
        /// </summary>
        /// <remarks>
        /// Update realm-sync job definition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterJobsRealmsyncSingleWithHttpInfoAsync(string id, UpdateClusterJobsRealmsyncSingleRequest updateClusterJobsRealmsyncSingleRequest = default(UpdateClusterJobsRealmsyncSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Update a directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingDirSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterMappingDirSingleAsync(string id, UpdateClusterMappingDirSingleRequest updateClusterMappingDirSingleRequest = default(UpdateClusterMappingDirSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterMappingDirSingle
        /// </summary>
        /// <remarks>
        /// Update a directory mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingDirSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterMappingDirSingleWithHttpInfoAsync(string id, UpdateClusterMappingDirSingleRequest updateClusterMappingDirSingleRequest = default(UpdateClusterMappingDirSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Update a hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingPciSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterMappingPciSingleAsync(string id, UpdateClusterMappingPciSingleRequest updateClusterMappingPciSingleRequest = default(UpdateClusterMappingPciSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterMappingPciSingle
        /// </summary>
        /// <remarks>
        /// Update a hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingPciSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterMappingPciSingleWithHttpInfoAsync(string id, UpdateClusterMappingPciSingleRequest updateClusterMappingPciSingleRequest = default(UpdateClusterMappingPciSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Update a hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingUsbSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterMappingUsbSingleAsync(string id, UpdateClusterMappingUsbSingleRequest updateClusterMappingUsbSingleRequest = default(UpdateClusterMappingUsbSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterMappingUsbSingle
        /// </summary>
        /// <remarks>
        /// Update a hardware mapping.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingUsbSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterMappingUsbSingleWithHttpInfoAsync(string id, UpdateClusterMappingUsbSingleRequest updateClusterMappingUsbSingleRequest = default(UpdateClusterMappingUsbSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Update metric server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterMetricsServerSingleAsync(string id, UpdateClusterMetricsServerSingleRequest updateClusterMetricsServerSingleRequest = default(UpdateClusterMetricsServerSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterMetricsServerSingle
        /// </summary>
        /// <remarks>
        /// Update metric server configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterMetricsServerSingleWithHttpInfoAsync(string id, UpdateClusterMetricsServerSingleRequest updateClusterMetricsServerSingleRequest = default(UpdateClusterMetricsServerSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Update existing gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsGotifySingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsGotifySingleAsync(string name, UpdateClusterNotificationsEndpointsGotifySingleRequest updateClusterNotificationsEndpointsGotifySingleRequest = default(UpdateClusterNotificationsEndpointsGotifySingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterNotificationsEndpointsGotifySingle
        /// </summary>
        /// <remarks>
        /// Update existing gotify endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsGotifySingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(string name, UpdateClusterNotificationsEndpointsGotifySingleRequest updateClusterNotificationsEndpointsGotifySingleRequest = default(UpdateClusterNotificationsEndpointsGotifySingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Update existing sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSendmailSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsSendmailSingleAsync(string name, UpdateClusterNotificationsEndpointsSendmailSingleRequest updateClusterNotificationsEndpointsSendmailSingleRequest = default(UpdateClusterNotificationsEndpointsSendmailSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterNotificationsEndpointsSendmailSingle
        /// </summary>
        /// <remarks>
        /// Update existing sendmail endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSendmailSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(string name, UpdateClusterNotificationsEndpointsSendmailSingleRequest updateClusterNotificationsEndpointsSendmailSingleRequest = default(UpdateClusterNotificationsEndpointsSendmailSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Update existing smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSmtpSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsSmtpSingleAsync(string name, UpdateClusterNotificationsEndpointsSmtpSingleRequest updateClusterNotificationsEndpointsSmtpSingleRequest = default(UpdateClusterNotificationsEndpointsSmtpSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterNotificationsEndpointsSmtpSingle
        /// </summary>
        /// <remarks>
        /// Update existing smtp endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSmtpSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(string name, UpdateClusterNotificationsEndpointsSmtpSingleRequest updateClusterNotificationsEndpointsSmtpSingleRequest = default(UpdateClusterNotificationsEndpointsSmtpSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Update existing webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsWebhookSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsWebhookSingleAsync(string name, UpdateClusterNotificationsEndpointsWebhookSingleRequest updateClusterNotificationsEndpointsWebhookSingleRequest = default(UpdateClusterNotificationsEndpointsWebhookSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterNotificationsEndpointsWebhookSingle
        /// </summary>
        /// <remarks>
        /// Update existing webhook endpoint
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsWebhookSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(string name, UpdateClusterNotificationsEndpointsWebhookSingleRequest updateClusterNotificationsEndpointsWebhookSingleRequest = default(UpdateClusterNotificationsEndpointsWebhookSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Update existing matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsMatchersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsMatchersSingleAsync(string name, UpdateClusterNotificationsMatchersSingleRequest updateClusterNotificationsMatchersSingleRequest = default(UpdateClusterNotificationsMatchersSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterNotificationsMatchersSingle
        /// </summary>
        /// <remarks>
        /// Update existing matcher
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsMatchersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsMatchersSingleWithHttpInfoAsync(string name, UpdateClusterNotificationsMatchersSingleRequest updateClusterNotificationsMatchersSingleRequest = default(UpdateClusterNotificationsMatchersSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterOptions
        /// </summary>
        /// <remarks>
        /// Set datacenter options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterOptionsAsync(UpdateClusterOptionsRequest updateClusterOptionsRequest = default(UpdateClusterOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterOptions
        /// </summary>
        /// <remarks>
        /// Set datacenter options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterOptionsWithHttpInfoAsync(UpdateClusterOptionsRequest updateClusterOptionsRequest = default(UpdateClusterOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Update replication job configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterReplicationSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterReplicationSingleAsync(string id, UpdateClusterReplicationSingleRequest updateClusterReplicationSingleRequest = default(UpdateClusterReplicationSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterReplicationSingle
        /// </summary>
        /// <remarks>
        /// Update replication job configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterReplicationSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterReplicationSingleWithHttpInfoAsync(string id, UpdateClusterReplicationSingleRequest updateClusterReplicationSingleRequest = default(UpdateClusterReplicationSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSDN
        /// </summary>
        /// <remarks>
        /// Apply sdn controller changes &amp;&amp; reload.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterSDNRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSDNAsync(UpdateClusterSDNRequest updateClusterSDNRequest = default(UpdateClusterSDNRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSDN
        /// </summary>
        /// <remarks>
        /// Apply sdn controller changes &amp;&amp; reload.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterSDNRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSDNWithHttpInfoAsync(UpdateClusterSDNRequest updateClusterSDNRequest = default(UpdateClusterSDNRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSDNController
        /// </summary>
        /// <remarks>
        /// Update sdn controller object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="updateClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSDNControllerAsync(string controller, UpdateClusterSDNControllerRequest updateClusterSDNControllerRequest = default(UpdateClusterSDNControllerRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSDNController
        /// </summary>
        /// <remarks>
        /// Update sdn controller object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="updateClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSDNControllerWithHttpInfoAsync(string controller, UpdateClusterSDNControllerRequest updateClusterSDNControllerRequest = default(UpdateClusterSDNControllerRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Update sdn vnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSDNVnetAsync(string vnet, UpdateClusterSDNVnetRequest updateClusterSDNVnetRequest = default(UpdateClusterSDNVnetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSDNVnet
        /// </summary>
        /// <remarks>
        /// Update sdn vnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSDNVnetWithHttpInfoAsync(string vnet, UpdateClusterSDNVnetRequest updateClusterSDNVnetRequest = default(UpdateClusterSDNVnetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Update sdn zone object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="updateClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSDNZoneAsync(string zone, UpdateClusterSDNZoneRequest updateClusterSDNZoneRequest = default(UpdateClusterSDNZoneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSDNZone
        /// </summary>
        /// <remarks>
        /// Update sdn zone object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="updateClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSDNZoneWithHttpInfoAsync(string zone, UpdateClusterSDNZoneRequest updateClusterSDNZoneRequest = default(UpdateClusterSDNZoneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn dns object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="updateClusterSdnDnsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnDnsSingleAsync(string dns, UpdateClusterSdnDnsSingleRequest updateClusterSdnDnsSingleRequest = default(UpdateClusterSdnDnsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSdnDnsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn dns object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="updateClusterSdnDnsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnDnsSingleWithHttpInfoAsync(string dns, UpdateClusterSdnDnsSingleRequest updateClusterSdnDnsSingleRequest = default(UpdateClusterSdnDnsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Update a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterSdnFabricsFabricSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnFabricsFabricSingleAsync(string id, UpdateClusterSdnFabricsFabricSingleRequest updateClusterSdnFabricsFabricSingleRequest = default(UpdateClusterSdnFabricsFabricSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSdnFabricsFabricSingle
        /// </summary>
        /// <remarks>
        /// Update a fabric
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterSdnFabricsFabricSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnFabricsFabricSingleWithHttpInfoAsync(string id, UpdateClusterSdnFabricsFabricSingleRequest updateClusterSdnFabricsFabricSingleRequest = default(UpdateClusterSdnFabricsFabricSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Update a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="updateClusterSdnFabricsNodeSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnFabricsNodeSingleSingleAsync(string fabricId, string nodeId, UpdateClusterSdnFabricsNodeSingleSingleRequest updateClusterSdnFabricsNodeSingleSingleRequest = default(UpdateClusterSdnFabricsNodeSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSdnFabricsNodeSingleSingle
        /// </summary>
        /// <remarks>
        /// Update a node
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="updateClusterSdnFabricsNodeSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(string fabricId, string nodeId, UpdateClusterSdnFabricsNodeSingleSingleRequest updateClusterSdnFabricsNodeSingleSingleRequest = default(UpdateClusterSdnFabricsNodeSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn ipam object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="updateClusterSdnIpamsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnIpamsSingleAsync(string ipam, UpdateClusterSdnIpamsSingleRequest updateClusterSdnIpamsSingleRequest = default(UpdateClusterSdnIpamsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSdnIpamsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn ipam object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="updateClusterSdnIpamsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnIpamsSingleWithHttpInfoAsync(string ipam, UpdateClusterSdnIpamsSingleRequest updateClusterSdnIpamsSingleRequest = default(UpdateClusterSdnIpamsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleFirewallOptionsAsync(string vnet, UpdateClusterSdnVnetsSingleFirewallOptionsRequest updateClusterSdnVnetsSingleFirewallOptionsRequest = default(UpdateClusterSdnVnetsSingleFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnVnetsSingleFirewallOptionsWithHttpInfoAsync(string vnet, UpdateClusterSdnVnetsSingleFirewallOptionsRequest updateClusterSdnVnetsSingleFirewallOptionsRequest = default(UpdateClusterSdnVnetsSingleFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleFirewallRulesSingleAsync(int pos, string vnet, UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest updateClusterSdnVnetsSingleFirewallRulesSingleRequest = default(UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(int pos, string vnet, UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest updateClusterSdnVnetsSingleFirewallRulesSingleRequest = default(UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Update IP Mapping in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleIpsAsync(string vnet, UpdateClusterSdnVnetsSingleIpsRequest updateClusterSdnVnetsSingleIpsRequest = default(UpdateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSdnVnetsSingleIps
        /// </summary>
        /// <remarks>
        /// Update IP Mapping in a VNet
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnVnetsSingleIpsWithHttpInfoAsync(string vnet, UpdateClusterSdnVnetsSingleIpsRequest updateClusterSdnVnetsSingleIpsRequest = default(UpdateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn subnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleSubnetsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleSubnetsSingleAsync(string subnet, string vnet, UpdateClusterSdnVnetsSingleSubnetsSingleRequest updateClusterSdnVnetsSingleSubnetsSingleRequest = default(UpdateClusterSdnVnetsSingleSubnetsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateClusterSdnVnetsSingleSubnetsSingle
        /// </summary>
        /// <remarks>
        /// Update sdn subnet object configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleSubnetsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(string subnet, string vnet, UpdateClusterSdnVnetsSingleSubnetsSingleRequest updateClusterSdnVnetsSingleSubnetsSingleRequest = default(UpdateClusterSdnVnetsSingleSubnetsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodeFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodeFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodeFirewallOptionsAsync(string node, UpdateNodeFirewallOptionsRequest updateNodeFirewallOptionsRequest = default(UpdateNodeFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodeFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodeFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodeFirewallOptionsWithHttpInfoAsync(string node, UpdateNodeFirewallOptionsRequest updateNodeFirewallOptionsRequest = default(UpdateNodeFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="updateNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodeFirewallRuleAsync(string node, int pos, UpdateNodeFirewallRuleRequest updateNodeFirewallRuleRequest = default(UpdateNodeFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodeFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="updateNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodeFirewallRuleWithHttpInfoAsync(string node, int pos, UpdateNodeFirewallRuleRequest updateNodeFirewallRuleRequest = default(UpdateNodeFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Add a standard repository to the configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleAptRepositoriesAsync(string node, UpdateNodesSingleAptRepositoriesRequest updateNodesSingleAptRepositoriesRequest = default(UpdateNodesSingleAptRepositoriesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleAptRepositories
        /// </summary>
        /// <remarks>
        /// Add a standard repository to the configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleAptRepositoriesWithHttpInfoAsync(string node, UpdateNodesSingleAptRepositoriesRequest updateNodesSingleAptRepositoriesRequest = default(UpdateNodesSingleAptRepositoriesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Change POOL settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCephPoolSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleCephPoolSingleAsync(string name, string node, UpdateNodesSingleCephPoolSingleRequest updateNodesSingleCephPoolSingleRequest = default(UpdateNodesSingleCephPoolSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleCephPoolSingle
        /// </summary>
        /// <remarks>
        /// Change POOL settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCephPoolSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleCephPoolSingleWithHttpInfoAsync(string name, string node, UpdateNodesSingleCephPoolSingleRequest updateNodesSingleCephPoolSingleRequest = default(UpdateNodesSingleCephPoolSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Renew existing certificate from CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleCertificatesAcmeCertificateAsync(string node, UpdateNodesSingleCertificatesAcmeCertificateRequest updateNodesSingleCertificatesAcmeCertificateRequest = default(UpdateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleCertificatesAcmeCertificate
        /// </summary>
        /// <remarks>
        /// Renew existing certificate from CA.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(string node, UpdateNodesSingleCertificatesAcmeCertificateRequest updateNodesSingleCertificatesAcmeCertificateRequest = default(UpdateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleConfig
        /// </summary>
        /// <remarks>
        /// Set node configuration options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleConfigAsync(string node, UpdateNodesSingleConfigRequest updateNodesSingleConfigRequest = default(UpdateNodesSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleConfig
        /// </summary>
        /// <remarks>
        /// Set node configuration options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleConfigWithHttpInfoAsync(string node, UpdateNodesSingleConfigRequest updateNodesSingleConfigRequest = default(UpdateNodesSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleDisksWipedisk
        /// </summary>
        /// <remarks>
        /// Wipe a disk or partition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDisksWipediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleDisksWipediskAsync(string node, UpdateNodesSingleDisksWipediskRequest updateNodesSingleDisksWipediskRequest = default(UpdateNodesSingleDisksWipediskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleDisksWipedisk
        /// </summary>
        /// <remarks>
        /// Wipe a disk or partition.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDisksWipediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleDisksWipediskWithHttpInfoAsync(string node, UpdateNodesSingleDisksWipediskRequest updateNodesSingleDisksWipediskRequest = default(UpdateNodesSingleDisksWipediskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleDns
        /// </summary>
        /// <remarks>
        /// Write DNS settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleDnsAsync(string node, UpdateNodesSingleDnsRequest updateNodesSingleDnsRequest = default(UpdateNodesSingleDnsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleDns
        /// </summary>
        /// <remarks>
        /// Write DNS settings.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleDnsWithHttpInfoAsync(string node, UpdateNodesSingleDnsRequest updateNodesSingleDnsRequest = default(UpdateNodesSingleDnsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleLxcSingleConfig
        /// </summary>
        /// <remarks>
        /// Set container options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleConfigAsync(string node, int vmid, UpdateNodesSingleLxcSingleConfigRequest updateNodesSingleLxcSingleConfigRequest = default(UpdateNodesSingleLxcSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleLxcSingleConfig
        /// </summary>
        /// <remarks>
        /// Set container options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleConfigWithHttpInfoAsync(string node, int vmid, UpdateNodesSingleLxcSingleConfigRequest updateNodesSingleLxcSingleConfigRequest = default(UpdateNodesSingleLxcSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallAliasesSingleAsync(string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest updateNodesSingleLxcSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest updateNodesSingleLxcSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleAsync(string cidr, string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest = default(UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallIpsetSingleSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(string cidr, string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest = default(UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleLxcSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallOptionsAsync(string node, int vmid, UpdateNodesSingleLxcSingleFirewallOptionsRequest updateNodesSingleLxcSingleFirewallOptionsRequest = default(UpdateNodesSingleLxcSingleFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleFirewallOptionsWithHttpInfoAsync(string node, int vmid, UpdateNodesSingleLxcSingleFirewallOptionsRequest updateNodesSingleLxcSingleFirewallOptionsRequest = default(UpdateNodesSingleLxcSingleFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallRulesSingleAsync(string node, int pos, int vmid, UpdateNodesSingleLxcSingleFirewallRulesSingleRequest updateNodesSingleLxcSingleFirewallRulesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallRulesSingle
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(string node, int pos, int vmid, UpdateNodesSingleLxcSingleFirewallRulesSingleRequest updateNodesSingleLxcSingleFirewallRulesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleLxcSingleResize
        /// </summary>
        /// <remarks>
        /// Resize a container mount point.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleResizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> UpdateNodesSingleLxcSingleResizeAsync(string node, int vmid, UpdateNodesSingleLxcSingleResizeRequest updateNodesSingleLxcSingleResizeRequest = default(UpdateNodesSingleLxcSingleResizeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleLxcSingleResize
        /// </summary>
        /// <remarks>
        /// Resize a container mount point.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleResizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> UpdateNodesSingleLxcSingleResizeWithHttpInfoAsync(string node, int vmid, UpdateNodesSingleLxcSingleResizeRequest updateNodesSingleLxcSingleResizeRequest = default(UpdateNodesSingleLxcSingleResizeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleLxcSingleSnapshotSingleConfig
        /// </summary>
        /// <remarks>
        /// Update snapshot metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleSnapshotSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleSnapshotSingleConfigAsync(string node, string snapname, int vmid, UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest updateNodesSingleLxcSingleSnapshotSingleConfigRequest = default(UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleLxcSingleSnapshotSingleConfig
        /// </summary>
        /// <remarks>
        /// Update snapshot metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleSnapshotSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfoAsync(string node, string snapname, int vmid, UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest updateNodesSingleLxcSingleSnapshotSingleConfigRequest = default(UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Reload network configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleNetworkAsync(string node, UpdateNodesSingleNetworkRequest updateNodesSingleNetworkRequest = default(UpdateNodesSingleNetworkRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleNetwork
        /// </summary>
        /// <remarks>
        /// Reload network configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleNetworkWithHttpInfoAsync(string node, UpdateNodesSingleNetworkRequest updateNodesSingleNetworkRequest = default(UpdateNodesSingleNetworkRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Update network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleNetworkSingleAsync(string iface, string node, UpdateNodesSingleNetworkSingleRequest updateNodesSingleNetworkSingleRequest = default(UpdateNodesSingleNetworkSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleNetworkSingle
        /// </summary>
        /// <remarks>
        /// Update network device configuration
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleNetworkSingleWithHttpInfoAsync(string iface, string node, UpdateNodesSingleNetworkSingleRequest updateNodesSingleNetworkSingleRequest = default(UpdateNodesSingleNetworkSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleQemuSingleCloudinit
        /// </summary>
        /// <remarks>
        /// Regenerate and change cloudinit config drive.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleCloudinitAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleQemuSingleCloudinit
        /// </summary>
        /// <remarks>
        /// Regenerate and change cloudinit config drive.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleQemuSingleCloudinitWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleFirewallAliasesSingleAsync(string name, string node, int vmid, UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest updateNodesSingleQemuSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleQemuSingleFirewallAliasesSingle
        /// </summary>
        /// <remarks>
        /// Update IP or Network alias.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest updateNodesSingleQemuSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleQemuSingleSendkey
        /// </summary>
        /// <remarks>
        /// Send key event to virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleSendkeyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleSendkeyAsync(string node, int vmid, UpdateNodesSingleQemuSingleSendkeyRequest updateNodesSingleQemuSingleSendkeyRequest = default(UpdateNodesSingleQemuSingleSendkeyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleQemuSingleSendkey
        /// </summary>
        /// <remarks>
        /// Send key event to virtual machine.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleSendkeyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleQemuSingleSendkeyWithHttpInfoAsync(string node, int vmid, UpdateNodesSingleQemuSingleSendkeyRequest updateNodesSingleQemuSingleSendkeyRequest = default(UpdateNodesSingleQemuSingleSendkeyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Update volume attributes
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="updateNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleStorageSingleContentSingleAsync(string node, string storage, string volume, UpdateNodesSingleStorageSingleContentSingleRequest updateNodesSingleStorageSingleContentSingleRequest = default(UpdateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleStorageSingleContentSingle
        /// </summary>
        /// <remarks>
        /// Update volume attributes
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="updateNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleStorageSingleContentSingleWithHttpInfoAsync(string node, string storage, string volume, UpdateNodesSingleStorageSingleContentSingleRequest updateNodesSingleStorageSingleContentSingleRequest = default(UpdateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Set subscription key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleSubscriptionAsync(string node, UpdateNodesSingleSubscriptionRequest updateNodesSingleSubscriptionRequest = default(UpdateNodesSingleSubscriptionRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleSubscription
        /// </summary>
        /// <remarks>
        /// Set subscription key.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleSubscriptionWithHttpInfoAsync(string node, UpdateNodesSingleSubscriptionRequest updateNodesSingleSubscriptionRequest = default(UpdateNodesSingleSubscriptionRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateNodesSingleTime
        /// </summary>
        /// <remarks>
        /// Set time zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleTimeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleTimeAsync(string node, UpdateNodesSingleTimeRequest updateNodesSingleTimeRequest = default(UpdateNodesSingleTimeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateNodesSingleTime
        /// </summary>
        /// <remarks>
        /// Set time zone.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleTimeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleTimeWithHttpInfoAsync(string node, UpdateNodesSingleTimeRequest updateNodesSingleTimeRequest = default(UpdateNodesSingleTimeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updatePool
        /// </summary>
        /// <remarks>
        /// Update pool data (deprecated, no support for nested pools - use &#39;PUT /pools/?poolid&#x3D;{poolid}&#39; instead).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="updatePoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdatePoolAsync(string poolid, UpdatePoolRequest updatePoolRequest = default(UpdatePoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updatePool
        /// </summary>
        /// <remarks>
        /// Update pool data (deprecated, no support for nested pools - use &#39;PUT /pools/?poolid&#x3D;{poolid}&#39; instead).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="updatePoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdatePoolWithHttpInfoAsync(string poolid, UpdatePoolRequest updatePoolRequest = default(UpdatePoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updatePools
        /// </summary>
        /// <remarks>
        /// Update pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updatePoolsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdatePoolsAsync(UpdatePoolsRequest updatePoolsRequest = default(UpdatePoolsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updatePools
        /// </summary>
        /// <remarks>
        /// Update pool.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updatePoolsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdatePoolsWithHttpInfoAsync(UpdatePoolsRequest updatePoolsRequest = default(UpdatePoolsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateStorageSingle
        /// </summary>
        /// <remarks>
        /// Update storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="updateStorageSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateStorage200Response</returns>
        System.Threading.Tasks.Task<CreateStorage200Response> UpdateStorageSingleAsync(string storage, UpdateStorageSingleRequest updateStorageSingleRequest = default(UpdateStorageSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateStorageSingle
        /// </summary>
        /// <remarks>
        /// Update storage configuration.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="updateStorageSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateStorage200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateStorage200Response>> UpdateStorageSingleWithHttpInfoAsync(string storage, UpdateStorageSingleRequest updateStorageSingleRequest = default(UpdateStorageSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateVMConfig
        /// </summary>
        /// <remarks>
        /// Set virtual machine options (asynchronous API).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMConfigAsync(string node, int vmid, UpdateVMConfigRequest updateVMConfigRequest = default(UpdateVMConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateVMConfig
        /// </summary>
        /// <remarks>
        /// Set virtual machine options (asynchronous API).
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateVMConfigWithHttpInfoAsync(string node, int vmid, UpdateVMConfigRequest updateVMConfigRequest = default(UpdateVMConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateVMConfigSync
        /// </summary>
        /// <remarks>
        /// Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMConfigSyncAsync(string node, int vmid, UpdateVMConfigSyncRequest updateVMConfigSyncRequest = default(UpdateVMConfigSyncRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateVMConfigSync
        /// </summary>
        /// <remarks>
        /// Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateVMConfigSyncWithHttpInfoAsync(string node, int vmid, UpdateVMConfigSyncRequest updateVMConfigSyncRequest = default(UpdateVMConfigSyncRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMFirewallIPSetIPAsync(string cidr, string name, string node, int vmid, UpdateVMFirewallIPSetIPRequest updateVMFirewallIPSetIPRequest = default(UpdateVMFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateVMFirewallIPSetIP
        /// </summary>
        /// <remarks>
        /// Update IP or Network settings
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateVMFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, string node, int vmid, UpdateVMFirewallIPSetIPRequest updateVMFirewallIPSetIPRequest = default(UpdateVMFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateVMFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMFirewallOptionsAsync(string node, int vmid, UpdateVMFirewallOptionsRequest updateVMFirewallOptionsRequest = default(UpdateVMFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateVMFirewallOptions
        /// </summary>
        /// <remarks>
        /// Set Firewall options.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateVMFirewallOptionsWithHttpInfoAsync(string node, int vmid, UpdateVMFirewallOptionsRequest updateVMFirewallOptionsRequest = default(UpdateVMFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMFirewallRuleAsync(string node, int pos, int vmid, UpdateVMFirewallRuleRequest updateVMFirewallRuleRequest = default(UpdateVMFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateVMFirewallRule
        /// </summary>
        /// <remarks>
        /// Modify rule data.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateVMFirewallRuleWithHttpInfoAsync(string node, int pos, int vmid, UpdateVMFirewallRuleRequest updateVMFirewallRuleRequest = default(UpdateVMFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// updateVMSnapshotConfig
        /// </summary>
        /// <remarks>
        /// Update snapshot metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMSnapshotConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMSnapshotConfigAsync(string node, string snapname, int vmid, UpdateVMSnapshotConfigRequest updateVMSnapshotConfigRequest = default(UpdateVMSnapshotConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// updateVMSnapshotConfig
        /// </summary>
        /// <remarks>
        /// Update snapshot metadata.
        /// </remarks>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMSnapshotConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        System.Threading.Tasks.Task<ApiResponse<CreateClusterReplication200Response>> UpdateVMSnapshotConfigWithHttpInfoAsync(string node, string snapname, int vmid, UpdateVMSnapshotConfigRequest updateVMSnapshotConfigRequest = default(UpdateVMSnapshotConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        #endregion Asynchronous Operations
    }

    /// <summary>
    /// Represents a collection of functions to interact with the API endpoints
    /// </summary>
    public interface IProxmoxGeneratedApi : IProxmoxGeneratedApiSync, IProxmoxGeneratedApiAsync
    {

    }

    /// <summary>
    /// Represents a collection of functions to interact with the API endpoints
    /// </summary>
    public partial class ProxmoxGeneratedApi : IProxmoxGeneratedApi
    {
        private ProxmoxSharp.Client.ExceptionFactory _exceptionFactory = (name, response) => null;

        /// <summary>
        /// Initializes a new instance of the <see cref="ProxmoxGeneratedApi"/> class.
        /// </summary>
        /// <returns></returns>
        public ProxmoxGeneratedApi() : this((string)null)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ProxmoxGeneratedApi"/> class.
        /// </summary>
        /// <returns></returns>
        public ProxmoxGeneratedApi(string basePath)
        {
            this.Configuration = ProxmoxSharp.Client.Configuration.MergeConfigurations(
                ProxmoxSharp.Client.GlobalConfiguration.Instance,
                new ProxmoxSharp.Client.Configuration { BasePath = basePath }
            );
            this.Client = new ProxmoxSharp.Client.ApiClient(this.Configuration.BasePath);
            this.AsynchronousClient = new ProxmoxSharp.Client.ApiClient(this.Configuration.BasePath);
            this.ExceptionFactory = ProxmoxSharp.Client.Configuration.DefaultExceptionFactory;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ProxmoxGeneratedApi"/> class
        /// using Configuration object
        /// </summary>
        /// <param name="configuration">An instance of Configuration</param>
        /// <returns></returns>
        public ProxmoxGeneratedApi(ProxmoxSharp.Client.Configuration configuration)
        {
            if (configuration == null) throw new ArgumentNullException("configuration");

            this.Configuration = ProxmoxSharp.Client.Configuration.MergeConfigurations(
                ProxmoxSharp.Client.GlobalConfiguration.Instance,
                configuration
            );
            this.Client = new ProxmoxSharp.Client.ApiClient(this.Configuration.BasePath);
            this.AsynchronousClient = new ProxmoxSharp.Client.ApiClient(this.Configuration.BasePath);
            ExceptionFactory = ProxmoxSharp.Client.Configuration.DefaultExceptionFactory;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ProxmoxGeneratedApi"/> class
        /// using a Configuration object and client instance.
        /// </summary>
        /// <param name="client">The client interface for synchronous API access.</param>
        /// <param name="asyncClient">The client interface for asynchronous API access.</param>
        /// <param name="configuration">The configuration object.</param>
        public ProxmoxGeneratedApi(ProxmoxSharp.Client.ISynchronousClient client, ProxmoxSharp.Client.IAsynchronousClient asyncClient, ProxmoxSharp.Client.IReadableConfiguration configuration)
        {
            if (client == null) throw new ArgumentNullException("client");
            if (asyncClient == null) throw new ArgumentNullException("asyncClient");
            if (configuration == null) throw new ArgumentNullException("configuration");

            this.Client = client;
            this.AsynchronousClient = asyncClient;
            this.Configuration = configuration;
            this.ExceptionFactory = ProxmoxSharp.Client.Configuration.DefaultExceptionFactory;
        }

        /// <summary>
        /// The client for accessing this underlying API asynchronously.
        /// </summary>
        public ProxmoxSharp.Client.IAsynchronousClient AsynchronousClient { get; set; }

        /// <summary>
        /// The client for accessing this underlying API synchronously.
        /// </summary>
        public ProxmoxSharp.Client.ISynchronousClient Client { get; set; }

        /// <summary>
        /// Gets the base path of the API client.
        /// </summary>
        /// <value>The base path</value>
        public string GetBasePath()
        {
            return this.Configuration.BasePath;
        }

        /// <summary>
        /// Gets or sets the configuration object
        /// </summary>
        /// <value>An instance of the Configuration</value>
        public ProxmoxSharp.Client.IReadableConfiguration Configuration { get; set; }

        /// <summary>
        /// Provides a factory method hook for the creation of exceptions.
        /// </summary>
        public ProxmoxSharp.Client.ExceptionFactory ExceptionFactory
        {
            get
            {
                if (_exceptionFactory != null && _exceptionFactory.GetInvocationList().Length > 1)
                {
                    throw new InvalidOperationException("Multicast delegate for ExceptionFactory is unsupported.");
                }
                return _exceptionFactory;
            }
            set { _exceptionFactory = value; }
        }

        /// <summary>
        /// addClusterFirewallGroupRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="addClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response AddClusterFirewallGroupRule(string group, AddClusterFirewallGroupRuleRequest addClusterFirewallGroupRuleRequest = default(AddClusterFirewallGroupRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = AddClusterFirewallGroupRuleWithHttpInfo(group, addClusterFirewallGroupRuleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// addClusterFirewallGroupRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="addClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> AddClusterFirewallGroupRuleWithHttpInfo(string group, AddClusterFirewallGroupRuleRequest addClusterFirewallGroupRuleRequest = default(AddClusterFirewallGroupRuleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->AddClusterFirewallGroupRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.Data = addClusterFirewallGroupRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.AddClusterFirewallGroupRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/firewall/groups/{group}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("AddClusterFirewallGroupRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// addClusterFirewallGroupRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="addClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> AddClusterFirewallGroupRuleAsync(string group, AddClusterFirewallGroupRuleRequest addClusterFirewallGroupRuleRequest = default(AddClusterFirewallGroupRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await AddClusterFirewallGroupRuleWithHttpInfoAsync(group, addClusterFirewallGroupRuleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// addClusterFirewallGroupRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="addClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> AddClusterFirewallGroupRuleWithHttpInfoAsync(string group, AddClusterFirewallGroupRuleRequest addClusterFirewallGroupRuleRequest = default(AddClusterFirewallGroupRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->AddClusterFirewallGroupRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.Data = addClusterFirewallGroupRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.AddClusterFirewallGroupRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/firewall/groups/{group}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("AddClusterFirewallGroupRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// addClusterFirewallIPSetIP Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="addClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response AddClusterFirewallIPSetIP(string name, AddClusterFirewallIPSetIPRequest addClusterFirewallIPSetIPRequest = default(AddClusterFirewallIPSetIPRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = AddClusterFirewallIPSetIPWithHttpInfo(name, addClusterFirewallIPSetIPRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// addClusterFirewallIPSetIP Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="addClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> AddClusterFirewallIPSetIPWithHttpInfo(string name, AddClusterFirewallIPSetIPRequest addClusterFirewallIPSetIPRequest = default(AddClusterFirewallIPSetIPRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->AddClusterFirewallIPSetIP");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = addClusterFirewallIPSetIPRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.AddClusterFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("AddClusterFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// addClusterFirewallIPSetIP Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="addClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> AddClusterFirewallIPSetIPAsync(string name, AddClusterFirewallIPSetIPRequest addClusterFirewallIPSetIPRequest = default(AddClusterFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await AddClusterFirewallIPSetIPWithHttpInfoAsync(name, addClusterFirewallIPSetIPRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// addClusterFirewallIPSetIP Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="addClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> AddClusterFirewallIPSetIPWithHttpInfoAsync(string name, AddClusterFirewallIPSetIPRequest addClusterFirewallIPSetIPRequest = default(AddClusterFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->AddClusterFirewallIPSetIP");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = addClusterFirewallIPSetIPRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.AddClusterFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("AddClusterFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// addClusterFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="addClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response AddClusterFirewallRule(AddClusterFirewallRuleRequest addClusterFirewallRuleRequest = default(AddClusterFirewallRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = AddClusterFirewallRuleWithHttpInfo(addClusterFirewallRuleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// addClusterFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="addClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> AddClusterFirewallRuleWithHttpInfo(AddClusterFirewallRuleRequest addClusterFirewallRuleRequest = default(AddClusterFirewallRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = addClusterFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.AddClusterFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("AddClusterFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// addClusterFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="addClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> AddClusterFirewallRuleAsync(AddClusterFirewallRuleRequest addClusterFirewallRuleRequest = default(AddClusterFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await AddClusterFirewallRuleWithHttpInfoAsync(addClusterFirewallRuleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// addClusterFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="addClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> AddClusterFirewallRuleWithHttpInfoAsync(AddClusterFirewallRuleRequest addClusterFirewallRuleRequest = default(AddClusterFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = addClusterFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.AddClusterFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("AddClusterFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// addVMFirewallIPSetIP Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="addVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response AddVMFirewallIPSetIP(string name, string node, int vmid, AddVMFirewallIPSetIPRequest addVMFirewallIPSetIPRequest = default(AddVMFirewallIPSetIPRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = AddVMFirewallIPSetIPWithHttpInfo(name, node, vmid, addVMFirewallIPSetIPRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// addVMFirewallIPSetIP Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="addVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> AddVMFirewallIPSetIPWithHttpInfo(string name, string node, int vmid, AddVMFirewallIPSetIPRequest addVMFirewallIPSetIPRequest = default(AddVMFirewallIPSetIPRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->AddVMFirewallIPSetIP");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->AddVMFirewallIPSetIP");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = addVMFirewallIPSetIPRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.AddVMFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("AddVMFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// addVMFirewallIPSetIP Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="addVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> AddVMFirewallIPSetIPAsync(string name, string node, int vmid, AddVMFirewallIPSetIPRequest addVMFirewallIPSetIPRequest = default(AddVMFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await AddVMFirewallIPSetIPWithHttpInfoAsync(name, node, vmid, addVMFirewallIPSetIPRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// addVMFirewallIPSetIP Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="addVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> AddVMFirewallIPSetIPWithHttpInfoAsync(string name, string node, int vmid, AddVMFirewallIPSetIPRequest addVMFirewallIPSetIPRequest = default(AddVMFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->AddVMFirewallIPSetIP");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->AddVMFirewallIPSetIP");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = addVMFirewallIPSetIPRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.AddVMFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("AddVMFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// cloneVM Create a copy of virtual machine/template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="cloneVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CloneVM(string node, int vmid, CloneVMRequest cloneVMRequest = default(CloneVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CloneVMWithHttpInfo(node, vmid, cloneVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// cloneVM Create a copy of virtual machine/template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="cloneVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CloneVMWithHttpInfo(string node, int vmid, CloneVMRequest cloneVMRequest = default(CloneVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CloneVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = cloneVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CloneVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/clone", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CloneVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// cloneVM Create a copy of virtual machine/template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="cloneVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CloneVMAsync(string node, int vmid, CloneVMRequest cloneVMRequest = default(CloneVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CloneVMWithHttpInfoAsync(node, vmid, cloneVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// cloneVM Create a copy of virtual machine/template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="cloneVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CloneVMWithHttpInfoAsync(string node, int vmid, CloneVMRequest cloneVMRequest = default(CloneVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CloneVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = cloneVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CloneVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/clone", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CloneVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessDomains Add an authentication server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessDomainsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateAccessDomains(CreateAccessDomainsRequest createAccessDomainsRequest = default(CreateAccessDomainsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateAccessDomainsWithHttpInfo(createAccessDomainsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessDomains Add an authentication server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessDomainsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateAccessDomainsWithHttpInfo(CreateAccessDomainsRequest createAccessDomainsRequest = default(CreateAccessDomainsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessDomainsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessDomains";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/access/domains", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessDomains", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessDomains Add an authentication server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessDomainsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessDomainsAsync(CreateAccessDomainsRequest createAccessDomainsRequest = default(CreateAccessDomainsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateAccessDomainsWithHttpInfoAsync(createAccessDomainsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessDomains Add an authentication server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessDomainsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateAccessDomainsWithHttpInfoAsync(CreateAccessDomainsRequest createAccessDomainsRequest = default(CreateAccessDomainsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessDomainsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessDomains";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/access/domains", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessDomains", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessDomainsSingleSync Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name &#39;name-$realm&#39;, so make sure those groups do not exist to prevent overwriting.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="createAccessDomainsSingleSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessDomainsSingleSync200Response</returns>
        public CreateAccessDomainsSingleSync200Response CreateAccessDomainsSingleSync(string realm, CreateAccessDomainsSingleSyncRequest createAccessDomainsSingleSyncRequest = default(CreateAccessDomainsSingleSyncRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessDomainsSingleSync200Response> localVarResponse = CreateAccessDomainsSingleSyncWithHttpInfo(realm, createAccessDomainsSingleSyncRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessDomainsSingleSync Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name &#39;name-$realm&#39;, so make sure those groups do not exist to prevent overwriting.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="createAccessDomainsSingleSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessDomainsSingleSync200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateAccessDomainsSingleSync200Response> CreateAccessDomainsSingleSyncWithHttpInfo(string realm, CreateAccessDomainsSingleSyncRequest createAccessDomainsSingleSyncRequest = default(CreateAccessDomainsSingleSyncRequest), int operationIndex = 0)
        {
            // verify the required parameter 'realm' is set
            if (realm == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'realm' when calling ProxmoxGeneratedApi->CreateAccessDomainsSingleSync");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("realm", ProxmoxSharp.Client.ClientUtils.ParameterToString(realm)); // path parameter
            localVarRequestOptions.Data = createAccessDomainsSingleSyncRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessDomainsSingleSync";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateAccessDomainsSingleSync200Response>("/access/domains/{realm}/sync", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessDomainsSingleSync", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessDomainsSingleSync Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name &#39;name-$realm&#39;, so make sure those groups do not exist to prevent overwriting.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="createAccessDomainsSingleSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessDomainsSingleSync200Response</returns>
        public async System.Threading.Tasks.Task<CreateAccessDomainsSingleSync200Response> CreateAccessDomainsSingleSyncAsync(string realm, CreateAccessDomainsSingleSyncRequest createAccessDomainsSingleSyncRequest = default(CreateAccessDomainsSingleSyncRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessDomainsSingleSync200Response> localVarResponse = await CreateAccessDomainsSingleSyncWithHttpInfoAsync(realm, createAccessDomainsSingleSyncRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessDomainsSingleSync Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name &#39;name-$realm&#39;, so make sure those groups do not exist to prevent overwriting.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="createAccessDomainsSingleSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessDomainsSingleSync200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateAccessDomainsSingleSync200Response>> CreateAccessDomainsSingleSyncWithHttpInfoAsync(string realm, CreateAccessDomainsSingleSyncRequest createAccessDomainsSingleSyncRequest = default(CreateAccessDomainsSingleSyncRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'realm' is set
            if (realm == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'realm' when calling ProxmoxGeneratedApi->CreateAccessDomainsSingleSync");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("realm", ProxmoxSharp.Client.ClientUtils.ParameterToString(realm)); // path parameter
            localVarRequestOptions.Data = createAccessDomainsSingleSyncRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessDomainsSingleSync";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateAccessDomainsSingleSync200Response>("/access/domains/{realm}/sync", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessDomainsSingleSync", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessGroups Create new group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateAccessGroups(CreateAccessGroupsRequest createAccessGroupsRequest = default(CreateAccessGroupsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateAccessGroupsWithHttpInfo(createAccessGroupsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessGroups Create new group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateAccessGroupsWithHttpInfo(CreateAccessGroupsRequest createAccessGroupsRequest = default(CreateAccessGroupsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessGroupsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/access/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessGroups Create new group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessGroupsAsync(CreateAccessGroupsRequest createAccessGroupsRequest = default(CreateAccessGroupsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateAccessGroupsWithHttpInfoAsync(createAccessGroupsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessGroups Create new group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateAccessGroupsWithHttpInfoAsync(CreateAccessGroupsRequest createAccessGroupsRequest = default(CreateAccessGroupsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessGroupsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/access/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessOpenidAuthurl Get the OpenId Authorization Url for the specified realm.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidAuthurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessOpenidAuthurl200Response</returns>
        public CreateAccessOpenidAuthurl200Response CreateAccessOpenidAuthurl(CreateAccessOpenidAuthurlRequest createAccessOpenidAuthurlRequest = default(CreateAccessOpenidAuthurlRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessOpenidAuthurl200Response> localVarResponse = CreateAccessOpenidAuthurlWithHttpInfo(createAccessOpenidAuthurlRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessOpenidAuthurl Get the OpenId Authorization Url for the specified realm.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidAuthurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessOpenidAuthurl200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateAccessOpenidAuthurl200Response> CreateAccessOpenidAuthurlWithHttpInfo(CreateAccessOpenidAuthurlRequest createAccessOpenidAuthurlRequest = default(CreateAccessOpenidAuthurlRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessOpenidAuthurlRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessOpenidAuthurl";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateAccessOpenidAuthurl200Response>("/access/openid/auth-url", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessOpenidAuthurl", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessOpenidAuthurl Get the OpenId Authorization Url for the specified realm.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidAuthurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessOpenidAuthurl200Response</returns>
        public async System.Threading.Tasks.Task<CreateAccessOpenidAuthurl200Response> CreateAccessOpenidAuthurlAsync(CreateAccessOpenidAuthurlRequest createAccessOpenidAuthurlRequest = default(CreateAccessOpenidAuthurlRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessOpenidAuthurl200Response> localVarResponse = await CreateAccessOpenidAuthurlWithHttpInfoAsync(createAccessOpenidAuthurlRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessOpenidAuthurl Get the OpenId Authorization Url for the specified realm.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidAuthurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessOpenidAuthurl200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateAccessOpenidAuthurl200Response>> CreateAccessOpenidAuthurlWithHttpInfoAsync(CreateAccessOpenidAuthurlRequest createAccessOpenidAuthurlRequest = default(CreateAccessOpenidAuthurlRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessOpenidAuthurlRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessOpenidAuthurl";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateAccessOpenidAuthurl200Response>("/access/openid/auth-url", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessOpenidAuthurl", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessOpenidLogin  Verify OpenID authorization code and create a ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidLoginRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateAccessOpenidLogin(CreateAccessOpenidLoginRequest createAccessOpenidLoginRequest = default(CreateAccessOpenidLoginRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateAccessOpenidLoginWithHttpInfo(createAccessOpenidLoginRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessOpenidLogin  Verify OpenID authorization code and create a ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidLoginRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateAccessOpenidLoginWithHttpInfo(CreateAccessOpenidLoginRequest createAccessOpenidLoginRequest = default(CreateAccessOpenidLoginRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessOpenidLoginRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessOpenidLogin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/access/openid/login", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessOpenidLogin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessOpenidLogin  Verify OpenID authorization code and create a ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidLoginRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessOpenidLoginAsync(CreateAccessOpenidLoginRequest createAccessOpenidLoginRequest = default(CreateAccessOpenidLoginRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateAccessOpenidLoginWithHttpInfoAsync(createAccessOpenidLoginRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessOpenidLogin  Verify OpenID authorization code and create a ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessOpenidLoginRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateAccessOpenidLoginWithHttpInfoAsync(CreateAccessOpenidLoginRequest createAccessOpenidLoginRequest = default(CreateAccessOpenidLoginRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessOpenidLoginRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessOpenidLogin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/access/openid/login", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessOpenidLogin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessRoles Create new role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessRolesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateAccessRoles(CreateAccessRolesRequest createAccessRolesRequest = default(CreateAccessRolesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateAccessRolesWithHttpInfo(createAccessRolesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessRoles Create new role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessRolesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateAccessRolesWithHttpInfo(CreateAccessRolesRequest createAccessRolesRequest = default(CreateAccessRolesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessRolesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessRoles";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/access/roles", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessRoles", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessRoles Create new role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessRolesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessRolesAsync(CreateAccessRolesRequest createAccessRolesRequest = default(CreateAccessRolesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateAccessRolesWithHttpInfoAsync(createAccessRolesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessRoles Create new role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessRolesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateAccessRolesWithHttpInfoAsync(CreateAccessRolesRequest createAccessRolesRequest = default(CreateAccessRolesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessRolesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessRoles";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/access/roles", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessRoles", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessTfaSingle Add a TFA entry for a user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="createAccessTfaSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessTfaSingle200Response</returns>
        public CreateAccessTfaSingle200Response CreateAccessTfaSingle(string userid, CreateAccessTfaSingleRequest createAccessTfaSingleRequest = default(CreateAccessTfaSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessTfaSingle200Response> localVarResponse = CreateAccessTfaSingleWithHttpInfo(userid, createAccessTfaSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessTfaSingle Add a TFA entry for a user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="createAccessTfaSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessTfaSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateAccessTfaSingle200Response> CreateAccessTfaSingleWithHttpInfo(string userid, CreateAccessTfaSingleRequest createAccessTfaSingleRequest = default(CreateAccessTfaSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->CreateAccessTfaSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = createAccessTfaSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessTfaSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateAccessTfaSingle200Response>("/access/tfa/{userid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessTfaSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessTfaSingle Add a TFA entry for a user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="createAccessTfaSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessTfaSingle200Response</returns>
        public async System.Threading.Tasks.Task<CreateAccessTfaSingle200Response> CreateAccessTfaSingleAsync(string userid, CreateAccessTfaSingleRequest createAccessTfaSingleRequest = default(CreateAccessTfaSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessTfaSingle200Response> localVarResponse = await CreateAccessTfaSingleWithHttpInfoAsync(userid, createAccessTfaSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessTfaSingle Add a TFA entry for a user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="createAccessTfaSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessTfaSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateAccessTfaSingle200Response>> CreateAccessTfaSingleWithHttpInfoAsync(string userid, CreateAccessTfaSingleRequest createAccessTfaSingleRequest = default(CreateAccessTfaSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->CreateAccessTfaSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = createAccessTfaSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessTfaSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateAccessTfaSingle200Response>("/access/tfa/{userid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessTfaSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessTicket Create or verify authentication ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessTicketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessTicket200Response</returns>
        public CreateAccessTicket200Response CreateAccessTicket(CreateAccessTicketRequest createAccessTicketRequest = default(CreateAccessTicketRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessTicket200Response> localVarResponse = CreateAccessTicketWithHttpInfo(createAccessTicketRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessTicket Create or verify authentication ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessTicketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessTicket200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateAccessTicket200Response> CreateAccessTicketWithHttpInfo(CreateAccessTicketRequest createAccessTicketRequest = default(CreateAccessTicketRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessTicketRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessTicket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateAccessTicket200Response>("/access/ticket", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessTicket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessTicket Create or verify authentication ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessTicketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessTicket200Response</returns>
        public async System.Threading.Tasks.Task<CreateAccessTicket200Response> CreateAccessTicketAsync(CreateAccessTicketRequest createAccessTicketRequest = default(CreateAccessTicketRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessTicket200Response> localVarResponse = await CreateAccessTicketWithHttpInfoAsync(createAccessTicketRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessTicket Create or verify authentication ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessTicketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessTicket200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateAccessTicket200Response>> CreateAccessTicketWithHttpInfoAsync(CreateAccessTicketRequest createAccessTicketRequest = default(CreateAccessTicketRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessTicketRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessTicket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateAccessTicket200Response>("/access/ticket", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessTicket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessUsers Create new user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessUsersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateAccessUsers(CreateAccessUsersRequest createAccessUsersRequest = default(CreateAccessUsersRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateAccessUsersWithHttpInfo(createAccessUsersRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessUsers Create new user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessUsersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateAccessUsersWithHttpInfo(CreateAccessUsersRequest createAccessUsersRequest = default(CreateAccessUsersRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessUsersRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessUsers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/access/users", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessUsers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessUsers Create new user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessUsersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessUsersAsync(CreateAccessUsersRequest createAccessUsersRequest = default(CreateAccessUsersRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateAccessUsersWithHttpInfoAsync(createAccessUsersRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessUsers Create new user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessUsersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateAccessUsersWithHttpInfoAsync(CreateAccessUsersRequest createAccessUsersRequest = default(CreateAccessUsersRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessUsersRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessUsers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/access/users", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessUsers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessUsersSingleTokenSingle Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="createAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateAccessUsersSingleTokenSingle200Response</returns>
        public CreateAccessUsersSingleTokenSingle200Response CreateAccessUsersSingleTokenSingle(string tokenid, string userid, CreateAccessUsersSingleTokenSingleRequest createAccessUsersSingleTokenSingleRequest = default(CreateAccessUsersSingleTokenSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessUsersSingleTokenSingle200Response> localVarResponse = CreateAccessUsersSingleTokenSingleWithHttpInfo(tokenid, userid, createAccessUsersSingleTokenSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessUsersSingleTokenSingle Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="createAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateAccessUsersSingleTokenSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateAccessUsersSingleTokenSingle200Response> CreateAccessUsersSingleTokenSingleWithHttpInfo(string tokenid, string userid, CreateAccessUsersSingleTokenSingleRequest createAccessUsersSingleTokenSingleRequest = default(CreateAccessUsersSingleTokenSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'tokenid' is set
            if (tokenid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'tokenid' when calling ProxmoxGeneratedApi->CreateAccessUsersSingleTokenSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->CreateAccessUsersSingleTokenSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tokenid", ProxmoxSharp.Client.ClientUtils.ParameterToString(tokenid)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = createAccessUsersSingleTokenSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessUsersSingleTokenSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateAccessUsersSingleTokenSingle200Response>("/access/users/{userid}/token/{tokenid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessUsersSingleTokenSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessUsersSingleTokenSingle Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="createAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateAccessUsersSingleTokenSingle200Response</returns>
        public async System.Threading.Tasks.Task<CreateAccessUsersSingleTokenSingle200Response> CreateAccessUsersSingleTokenSingleAsync(string tokenid, string userid, CreateAccessUsersSingleTokenSingleRequest createAccessUsersSingleTokenSingleRequest = default(CreateAccessUsersSingleTokenSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateAccessUsersSingleTokenSingle200Response> localVarResponse = await CreateAccessUsersSingleTokenSingleWithHttpInfoAsync(tokenid, userid, createAccessUsersSingleTokenSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessUsersSingleTokenSingle Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="createAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateAccessUsersSingleTokenSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateAccessUsersSingleTokenSingle200Response>> CreateAccessUsersSingleTokenSingleWithHttpInfoAsync(string tokenid, string userid, CreateAccessUsersSingleTokenSingleRequest createAccessUsersSingleTokenSingleRequest = default(CreateAccessUsersSingleTokenSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'tokenid' is set
            if (tokenid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'tokenid' when calling ProxmoxGeneratedApi->CreateAccessUsersSingleTokenSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->CreateAccessUsersSingleTokenSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tokenid", ProxmoxSharp.Client.ClientUtils.ParameterToString(tokenid)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = createAccessUsersSingleTokenSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessUsersSingleTokenSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateAccessUsersSingleTokenSingle200Response>("/access/users/{userid}/token/{tokenid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessUsersSingleTokenSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessVncticket verify VNC authentication ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessVncticketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateAccessVncticket(CreateAccessVncticketRequest createAccessVncticketRequest = default(CreateAccessVncticketRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateAccessVncticketWithHttpInfo(createAccessVncticketRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessVncticket verify VNC authentication ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessVncticketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateAccessVncticketWithHttpInfo(CreateAccessVncticketRequest createAccessVncticketRequest = default(CreateAccessVncticketRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessVncticketRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessVncticket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/access/vncticket", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessVncticket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createAccessVncticket verify VNC authentication ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessVncticketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateAccessVncticketAsync(CreateAccessVncticketRequest createAccessVncticketRequest = default(CreateAccessVncticketRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateAccessVncticketWithHttpInfoAsync(createAccessVncticketRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createAccessVncticket verify VNC authentication ticket.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createAccessVncticketRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateAccessVncticketWithHttpInfoAsync(CreateAccessVncticketRequest createAccessVncticketRequest = default(CreateAccessVncticketRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createAccessVncticketRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateAccessVncticket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/access/vncticket", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateAccessVncticket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterAcmeAccount Register a new ACME account with CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmeAccountRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterAcmeAccount(CreateClusterAcmeAccountRequest createClusterAcmeAccountRequest = default(CreateClusterAcmeAccountRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterAcmeAccountWithHttpInfo(createClusterAcmeAccountRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterAcmeAccount Register a new ACME account with CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmeAccountRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterAcmeAccountWithHttpInfo(CreateClusterAcmeAccountRequest createClusterAcmeAccountRequest = default(CreateClusterAcmeAccountRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterAcmeAccountRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterAcmeAccount";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/acme/account", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterAcmeAccount", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterAcmeAccount Register a new ACME account with CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmeAccountRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterAcmeAccountAsync(CreateClusterAcmeAccountRequest createClusterAcmeAccountRequest = default(CreateClusterAcmeAccountRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterAcmeAccountWithHttpInfoAsync(createClusterAcmeAccountRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterAcmeAccount Register a new ACME account with CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmeAccountRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterAcmeAccountWithHttpInfoAsync(CreateClusterAcmeAccountRequest createClusterAcmeAccountRequest = default(CreateClusterAcmeAccountRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterAcmeAccountRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterAcmeAccount";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/acme/account", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterAcmeAccount", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterAcmePlugins Add ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmePluginsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterAcmePlugins(CreateClusterAcmePluginsRequest createClusterAcmePluginsRequest = default(CreateClusterAcmePluginsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterAcmePluginsWithHttpInfo(createClusterAcmePluginsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterAcmePlugins Add ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmePluginsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterAcmePluginsWithHttpInfo(CreateClusterAcmePluginsRequest createClusterAcmePluginsRequest = default(CreateClusterAcmePluginsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterAcmePluginsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterAcmePlugins";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/acme/plugins", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterAcmePlugins", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterAcmePlugins Add ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmePluginsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterAcmePluginsAsync(CreateClusterAcmePluginsRequest createClusterAcmePluginsRequest = default(CreateClusterAcmePluginsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterAcmePluginsWithHttpInfoAsync(createClusterAcmePluginsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterAcmePlugins Add ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterAcmePluginsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterAcmePluginsWithHttpInfoAsync(CreateClusterAcmePluginsRequest createClusterAcmePluginsRequest = default(CreateClusterAcmePluginsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterAcmePluginsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterAcmePlugins";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/acme/plugins", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterAcmePlugins", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBackup Create new vzdump backup job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBackupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterBackup(CreateClusterBackupRequest createClusterBackupRequest = default(CreateClusterBackupRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterBackupWithHttpInfo(createClusterBackupRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBackup Create new vzdump backup job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBackupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterBackupWithHttpInfo(CreateClusterBackupRequest createClusterBackupRequest = default(CreateClusterBackupRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBackupRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBackup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/backup", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBackup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBackup Create new vzdump backup job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBackupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterBackupAsync(CreateClusterBackupRequest createClusterBackupRequest = default(CreateClusterBackupRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterBackupWithHttpInfoAsync(createClusterBackupRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBackup Create new vzdump backup job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBackupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterBackupWithHttpInfoAsync(CreateClusterBackupRequest createClusterBackupRequest = default(CreateClusterBackupRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBackupRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBackup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/backup", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBackup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBulkactionGuestMigrate Bulk migrate all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterBulkactionGuestStart200Response</returns>
        public CreateClusterBulkactionGuestStart200Response CreateClusterBulkactionGuestMigrate(CreateClusterBulkactionGuestMigrateRequest createClusterBulkactionGuestMigrateRequest = default(CreateClusterBulkactionGuestMigrateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> localVarResponse = CreateClusterBulkactionGuestMigrateWithHttpInfo(createClusterBulkactionGuestMigrateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBulkactionGuestMigrate Bulk migrate all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterBulkactionGuestStart200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestMigrateWithHttpInfo(CreateClusterBulkactionGuestMigrateRequest createClusterBulkactionGuestMigrateRequest = default(CreateClusterBulkactionGuestMigrateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBulkactionGuestMigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBulkactionGuestMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterBulkactionGuestStart200Response>("/cluster/bulk-action/guest/migrate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBulkactionGuestMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBulkactionGuestMigrate Bulk migrate all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterBulkactionGuestStart200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestMigrateAsync(CreateClusterBulkactionGuestMigrateRequest createClusterBulkactionGuestMigrateRequest = default(CreateClusterBulkactionGuestMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> localVarResponse = await CreateClusterBulkactionGuestMigrateWithHttpInfoAsync(createClusterBulkactionGuestMigrateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBulkactionGuestMigrate Bulk migrate all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterBulkactionGuestStart200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response>> CreateClusterBulkactionGuestMigrateWithHttpInfoAsync(CreateClusterBulkactionGuestMigrateRequest createClusterBulkactionGuestMigrateRequest = default(CreateClusterBulkactionGuestMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBulkactionGuestMigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBulkactionGuestMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterBulkactionGuestStart200Response>("/cluster/bulk-action/guest/migrate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBulkactionGuestMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBulkactionGuestShutdown Bulk shutdown all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterBulkactionGuestStart200Response</returns>
        public CreateClusterBulkactionGuestStart200Response CreateClusterBulkactionGuestShutdown(CreateClusterBulkactionGuestShutdownRequest createClusterBulkactionGuestShutdownRequest = default(CreateClusterBulkactionGuestShutdownRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> localVarResponse = CreateClusterBulkactionGuestShutdownWithHttpInfo(createClusterBulkactionGuestShutdownRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBulkactionGuestShutdown Bulk shutdown all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterBulkactionGuestStart200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestShutdownWithHttpInfo(CreateClusterBulkactionGuestShutdownRequest createClusterBulkactionGuestShutdownRequest = default(CreateClusterBulkactionGuestShutdownRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBulkactionGuestShutdownRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBulkactionGuestShutdown";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterBulkactionGuestStart200Response>("/cluster/bulk-action/guest/shutdown", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBulkactionGuestShutdown", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBulkactionGuestShutdown Bulk shutdown all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterBulkactionGuestStart200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestShutdownAsync(CreateClusterBulkactionGuestShutdownRequest createClusterBulkactionGuestShutdownRequest = default(CreateClusterBulkactionGuestShutdownRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> localVarResponse = await CreateClusterBulkactionGuestShutdownWithHttpInfoAsync(createClusterBulkactionGuestShutdownRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBulkactionGuestShutdown Bulk shutdown all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterBulkactionGuestStart200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response>> CreateClusterBulkactionGuestShutdownWithHttpInfoAsync(CreateClusterBulkactionGuestShutdownRequest createClusterBulkactionGuestShutdownRequest = default(CreateClusterBulkactionGuestShutdownRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBulkactionGuestShutdownRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBulkactionGuestShutdown";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterBulkactionGuestStart200Response>("/cluster/bulk-action/guest/shutdown", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBulkactionGuestShutdown", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBulkactionGuestStart Bulk start or resume all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterBulkactionGuestStart200Response</returns>
        public CreateClusterBulkactionGuestStart200Response CreateClusterBulkactionGuestStart(CreateClusterBulkactionGuestStartRequest createClusterBulkactionGuestStartRequest = default(CreateClusterBulkactionGuestStartRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> localVarResponse = CreateClusterBulkactionGuestStartWithHttpInfo(createClusterBulkactionGuestStartRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBulkactionGuestStart Bulk start or resume all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterBulkactionGuestStart200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestStartWithHttpInfo(CreateClusterBulkactionGuestStartRequest createClusterBulkactionGuestStartRequest = default(CreateClusterBulkactionGuestStartRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBulkactionGuestStartRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBulkactionGuestStart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterBulkactionGuestStart200Response>("/cluster/bulk-action/guest/start", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBulkactionGuestStart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBulkactionGuestStart Bulk start or resume all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterBulkactionGuestStart200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestStartAsync(CreateClusterBulkactionGuestStartRequest createClusterBulkactionGuestStartRequest = default(CreateClusterBulkactionGuestStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> localVarResponse = await CreateClusterBulkactionGuestStartWithHttpInfoAsync(createClusterBulkactionGuestStartRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBulkactionGuestStart Bulk start or resume all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterBulkactionGuestStart200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response>> CreateClusterBulkactionGuestStartWithHttpInfoAsync(CreateClusterBulkactionGuestStartRequest createClusterBulkactionGuestStartRequest = default(CreateClusterBulkactionGuestStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBulkactionGuestStartRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBulkactionGuestStart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterBulkactionGuestStart200Response>("/cluster/bulk-action/guest/start", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBulkactionGuestStart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBulkactionGuestSuspend Bulk suspend all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestSuspendRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterBulkactionGuestStart200Response</returns>
        public CreateClusterBulkactionGuestStart200Response CreateClusterBulkactionGuestSuspend(CreateClusterBulkactionGuestSuspendRequest createClusterBulkactionGuestSuspendRequest = default(CreateClusterBulkactionGuestSuspendRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> localVarResponse = CreateClusterBulkactionGuestSuspendWithHttpInfo(createClusterBulkactionGuestSuspendRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBulkactionGuestSuspend Bulk suspend all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestSuspendRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterBulkactionGuestStart200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestSuspendWithHttpInfo(CreateClusterBulkactionGuestSuspendRequest createClusterBulkactionGuestSuspendRequest = default(CreateClusterBulkactionGuestSuspendRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBulkactionGuestSuspendRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBulkactionGuestSuspend";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterBulkactionGuestStart200Response>("/cluster/bulk-action/guest/suspend", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBulkactionGuestSuspend", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterBulkactionGuestSuspend Bulk suspend all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestSuspendRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterBulkactionGuestStart200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterBulkactionGuestStart200Response> CreateClusterBulkactionGuestSuspendAsync(CreateClusterBulkactionGuestSuspendRequest createClusterBulkactionGuestSuspendRequest = default(CreateClusterBulkactionGuestSuspendRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response> localVarResponse = await CreateClusterBulkactionGuestSuspendWithHttpInfoAsync(createClusterBulkactionGuestSuspendRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterBulkactionGuestSuspend Bulk suspend all guests on the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterBulkactionGuestSuspendRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterBulkactionGuestStart200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterBulkactionGuestStart200Response>> CreateClusterBulkactionGuestSuspendWithHttpInfoAsync(CreateClusterBulkactionGuestSuspendRequest createClusterBulkactionGuestSuspendRequest = default(CreateClusterBulkactionGuestSuspendRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterBulkactionGuestSuspendRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterBulkactionGuestSuspend";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterBulkactionGuestStart200Response>("/cluster/bulk-action/guest/suspend", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterBulkactionGuestSuspend", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterConfig Generate new cluster configuration. If no links given, default to local IP address as link0.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterConfig(CreateClusterConfigRequest createClusterConfigRequest = default(CreateClusterConfigRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterConfigWithHttpInfo(createClusterConfigRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterConfig Generate new cluster configuration. If no links given, default to local IP address as link0.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterConfigWithHttpInfo(CreateClusterConfigRequest createClusterConfigRequest = default(CreateClusterConfigRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterConfig Generate new cluster configuration. If no links given, default to local IP address as link0.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterConfigAsync(CreateClusterConfigRequest createClusterConfigRequest = default(CreateClusterConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterConfigWithHttpInfoAsync(createClusterConfigRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterConfig Generate new cluster configuration. If no links given, default to local IP address as link0.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterConfigWithHttpInfoAsync(CreateClusterConfigRequest createClusterConfigRequest = default(CreateClusterConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterConfigJoin Joins this node into an existing cluster. If no links are given, default to IP resolved by node&#39;s hostname on single link (fallback fails for clusters with multiple links).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigJoinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterConfigJoin(CreateClusterConfigJoinRequest createClusterConfigJoinRequest = default(CreateClusterConfigJoinRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterConfigJoinWithHttpInfo(createClusterConfigJoinRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterConfigJoin Joins this node into an existing cluster. If no links are given, default to IP resolved by node&#39;s hostname on single link (fallback fails for clusters with multiple links).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigJoinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterConfigJoinWithHttpInfo(CreateClusterConfigJoinRequest createClusterConfigJoinRequest = default(CreateClusterConfigJoinRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterConfigJoinRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterConfigJoin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/config/join", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterConfigJoin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterConfigJoin Joins this node into an existing cluster. If no links are given, default to IP resolved by node&#39;s hostname on single link (fallback fails for clusters with multiple links).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigJoinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterConfigJoinAsync(CreateClusterConfigJoinRequest createClusterConfigJoinRequest = default(CreateClusterConfigJoinRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterConfigJoinWithHttpInfoAsync(createClusterConfigJoinRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterConfigJoin Joins this node into an existing cluster. If no links are given, default to IP resolved by node&#39;s hostname on single link (fallback fails for clusters with multiple links).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterConfigJoinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterConfigJoinWithHttpInfoAsync(CreateClusterConfigJoinRequest createClusterConfigJoinRequest = default(CreateClusterConfigJoinRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterConfigJoinRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterConfigJoin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/config/join", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterConfigJoin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterConfigNodesSingle Adds a node to the cluster configuration. This call is for internal use.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createClusterConfigNodesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterConfigNodesSingle200Response</returns>
        public CreateClusterConfigNodesSingle200Response CreateClusterConfigNodesSingle(string node, CreateClusterConfigNodesSingleRequest createClusterConfigNodesSingleRequest = default(CreateClusterConfigNodesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterConfigNodesSingle200Response> localVarResponse = CreateClusterConfigNodesSingleWithHttpInfo(node, createClusterConfigNodesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterConfigNodesSingle Adds a node to the cluster configuration. This call is for internal use.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createClusterConfigNodesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterConfigNodesSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterConfigNodesSingle200Response> CreateClusterConfigNodesSingleWithHttpInfo(string node, CreateClusterConfigNodesSingleRequest createClusterConfigNodesSingleRequest = default(CreateClusterConfigNodesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateClusterConfigNodesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createClusterConfigNodesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterConfigNodesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterConfigNodesSingle200Response>("/cluster/config/nodes/{node}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterConfigNodesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterConfigNodesSingle Adds a node to the cluster configuration. This call is for internal use.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createClusterConfigNodesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterConfigNodesSingle200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterConfigNodesSingle200Response> CreateClusterConfigNodesSingleAsync(string node, CreateClusterConfigNodesSingleRequest createClusterConfigNodesSingleRequest = default(CreateClusterConfigNodesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterConfigNodesSingle200Response> localVarResponse = await CreateClusterConfigNodesSingleWithHttpInfoAsync(node, createClusterConfigNodesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterConfigNodesSingle Adds a node to the cluster configuration. This call is for internal use.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createClusterConfigNodesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterConfigNodesSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterConfigNodesSingle200Response>> CreateClusterConfigNodesSingleWithHttpInfoAsync(string node, CreateClusterConfigNodesSingleRequest createClusterConfigNodesSingleRequest = default(CreateClusterConfigNodesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateClusterConfigNodesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createClusterConfigNodesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterConfigNodesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterConfigNodesSingle200Response>("/cluster/config/nodes/{node}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterConfigNodesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterFirewallAliases(CreateClusterFirewallAliasesRequest createClusterFirewallAliasesRequest = default(CreateClusterFirewallAliasesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterFirewallAliasesWithHttpInfo(createClusterFirewallAliasesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterFirewallAliasesWithHttpInfo(CreateClusterFirewallAliasesRequest createClusterFirewallAliasesRequest = default(CreateClusterFirewallAliasesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterFirewallAliasesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/firewall/aliases", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterFirewallAliasesAsync(CreateClusterFirewallAliasesRequest createClusterFirewallAliasesRequest = default(CreateClusterFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterFirewallAliasesWithHttpInfoAsync(createClusterFirewallAliasesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterFirewallAliasesWithHttpInfoAsync(CreateClusterFirewallAliasesRequest createClusterFirewallAliasesRequest = default(CreateClusterFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterFirewallAliasesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/firewall/aliases", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterFirewallGroup Create new security group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallGroupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterFirewallGroup(CreateClusterFirewallGroupRequest createClusterFirewallGroupRequest = default(CreateClusterFirewallGroupRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterFirewallGroupWithHttpInfo(createClusterFirewallGroupRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterFirewallGroup Create new security group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallGroupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterFirewallGroupWithHttpInfo(CreateClusterFirewallGroupRequest createClusterFirewallGroupRequest = default(CreateClusterFirewallGroupRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterFirewallGroupRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterFirewallGroup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/firewall/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterFirewallGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterFirewallGroup Create new security group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallGroupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterFirewallGroupAsync(CreateClusterFirewallGroupRequest createClusterFirewallGroupRequest = default(CreateClusterFirewallGroupRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterFirewallGroupWithHttpInfoAsync(createClusterFirewallGroupRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterFirewallGroup Create new security group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallGroupRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterFirewallGroupWithHttpInfoAsync(CreateClusterFirewallGroupRequest createClusterFirewallGroupRequest = default(CreateClusterFirewallGroupRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterFirewallGroupRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterFirewallGroup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/firewall/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterFirewallGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterFirewallIPSet Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterFirewallIPSet(CreateClusterFirewallIPSetRequest createClusterFirewallIPSetRequest = default(CreateClusterFirewallIPSetRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterFirewallIPSetWithHttpInfo(createClusterFirewallIPSetRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterFirewallIPSet Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterFirewallIPSetWithHttpInfo(CreateClusterFirewallIPSetRequest createClusterFirewallIPSetRequest = default(CreateClusterFirewallIPSetRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterFirewallIPSetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/firewall/ipset", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterFirewallIPSet Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterFirewallIPSetAsync(CreateClusterFirewallIPSetRequest createClusterFirewallIPSetRequest = default(CreateClusterFirewallIPSetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterFirewallIPSetWithHttpInfoAsync(createClusterFirewallIPSetRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterFirewallIPSet Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterFirewallIPSetWithHttpInfoAsync(CreateClusterFirewallIPSetRequest createClusterFirewallIPSetRequest = default(CreateClusterFirewallIPSetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterFirewallIPSetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/firewall/ipset", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaGroups Create a new HA group. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterHaGroups(CreateClusterHaGroupsRequest createClusterHaGroupsRequest = default(CreateClusterHaGroupsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterHaGroupsWithHttpInfo(createClusterHaGroupsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaGroups Create a new HA group. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterHaGroupsWithHttpInfo(CreateClusterHaGroupsRequest createClusterHaGroupsRequest = default(CreateClusterHaGroupsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterHaGroupsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/ha/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaGroups Create a new HA group. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterHaGroupsAsync(CreateClusterHaGroupsRequest createClusterHaGroupsRequest = default(CreateClusterHaGroupsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterHaGroupsWithHttpInfoAsync(createClusterHaGroupsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaGroups Create a new HA group. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaGroupsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterHaGroupsWithHttpInfoAsync(CreateClusterHaGroupsRequest createClusterHaGroupsRequest = default(CreateClusterHaGroupsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterHaGroupsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/ha/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaResources Create a new HA resource.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaResourcesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterHaResources(CreateClusterHaResourcesRequest createClusterHaResourcesRequest = default(CreateClusterHaResourcesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterHaResourcesWithHttpInfo(createClusterHaResourcesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaResources Create a new HA resource.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaResourcesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterHaResourcesWithHttpInfo(CreateClusterHaResourcesRequest createClusterHaResourcesRequest = default(CreateClusterHaResourcesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterHaResourcesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaResources";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/ha/resources", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaResources", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaResources Create a new HA resource.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaResourcesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterHaResourcesAsync(CreateClusterHaResourcesRequest createClusterHaResourcesRequest = default(CreateClusterHaResourcesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterHaResourcesWithHttpInfoAsync(createClusterHaResourcesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaResources Create a new HA resource.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaResourcesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterHaResourcesWithHttpInfoAsync(CreateClusterHaResourcesRequest createClusterHaResourcesRequest = default(CreateClusterHaResourcesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterHaResourcesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaResources";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/ha/resources", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaResources", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaResourcesSingleMigrate Request resource migration (online) to another node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterHaResourcesSingleMigrate200Response</returns>
        public CreateClusterHaResourcesSingleMigrate200Response CreateClusterHaResourcesSingleMigrate(string sid, CreateClusterHaResourcesSingleMigrateRequest createClusterHaResourcesSingleMigrateRequest = default(CreateClusterHaResourcesSingleMigrateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterHaResourcesSingleMigrate200Response> localVarResponse = CreateClusterHaResourcesSingleMigrateWithHttpInfo(sid, createClusterHaResourcesSingleMigrateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaResourcesSingleMigrate Request resource migration (online) to another node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterHaResourcesSingleMigrate200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterHaResourcesSingleMigrate200Response> CreateClusterHaResourcesSingleMigrateWithHttpInfo(string sid, CreateClusterHaResourcesSingleMigrateRequest createClusterHaResourcesSingleMigrateRequest = default(CreateClusterHaResourcesSingleMigrateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->CreateClusterHaResourcesSingleMigrate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter
            localVarRequestOptions.Data = createClusterHaResourcesSingleMigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaResourcesSingleMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterHaResourcesSingleMigrate200Response>("/cluster/ha/resources/{sid}/migrate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaResourcesSingleMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaResourcesSingleMigrate Request resource migration (online) to another node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterHaResourcesSingleMigrate200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterHaResourcesSingleMigrate200Response> CreateClusterHaResourcesSingleMigrateAsync(string sid, CreateClusterHaResourcesSingleMigrateRequest createClusterHaResourcesSingleMigrateRequest = default(CreateClusterHaResourcesSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterHaResourcesSingleMigrate200Response> localVarResponse = await CreateClusterHaResourcesSingleMigrateWithHttpInfoAsync(sid, createClusterHaResourcesSingleMigrateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaResourcesSingleMigrate Request resource migration (online) to another node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterHaResourcesSingleMigrate200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterHaResourcesSingleMigrate200Response>> CreateClusterHaResourcesSingleMigrateWithHttpInfoAsync(string sid, CreateClusterHaResourcesSingleMigrateRequest createClusterHaResourcesSingleMigrateRequest = default(CreateClusterHaResourcesSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->CreateClusterHaResourcesSingleMigrate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter
            localVarRequestOptions.Data = createClusterHaResourcesSingleMigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaResourcesSingleMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterHaResourcesSingleMigrate200Response>("/cluster/ha/resources/{sid}/migrate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaResourcesSingleMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaResourcesSingleRelocate Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleRelocateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterHaResourcesSingleRelocate200Response</returns>
        public CreateClusterHaResourcesSingleRelocate200Response CreateClusterHaResourcesSingleRelocate(string sid, CreateClusterHaResourcesSingleRelocateRequest createClusterHaResourcesSingleRelocateRequest = default(CreateClusterHaResourcesSingleRelocateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterHaResourcesSingleRelocate200Response> localVarResponse = CreateClusterHaResourcesSingleRelocateWithHttpInfo(sid, createClusterHaResourcesSingleRelocateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaResourcesSingleRelocate Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleRelocateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterHaResourcesSingleRelocate200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterHaResourcesSingleRelocate200Response> CreateClusterHaResourcesSingleRelocateWithHttpInfo(string sid, CreateClusterHaResourcesSingleRelocateRequest createClusterHaResourcesSingleRelocateRequest = default(CreateClusterHaResourcesSingleRelocateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->CreateClusterHaResourcesSingleRelocate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter
            localVarRequestOptions.Data = createClusterHaResourcesSingleRelocateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaResourcesSingleRelocate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterHaResourcesSingleRelocate200Response>("/cluster/ha/resources/{sid}/relocate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaResourcesSingleRelocate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaResourcesSingleRelocate Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleRelocateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterHaResourcesSingleRelocate200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterHaResourcesSingleRelocate200Response> CreateClusterHaResourcesSingleRelocateAsync(string sid, CreateClusterHaResourcesSingleRelocateRequest createClusterHaResourcesSingleRelocateRequest = default(CreateClusterHaResourcesSingleRelocateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterHaResourcesSingleRelocate200Response> localVarResponse = await CreateClusterHaResourcesSingleRelocateWithHttpInfoAsync(sid, createClusterHaResourcesSingleRelocateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaResourcesSingleRelocate Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="createClusterHaResourcesSingleRelocateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterHaResourcesSingleRelocate200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterHaResourcesSingleRelocate200Response>> CreateClusterHaResourcesSingleRelocateWithHttpInfoAsync(string sid, CreateClusterHaResourcesSingleRelocateRequest createClusterHaResourcesSingleRelocateRequest = default(CreateClusterHaResourcesSingleRelocateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->CreateClusterHaResourcesSingleRelocate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter
            localVarRequestOptions.Data = createClusterHaResourcesSingleRelocateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaResourcesSingleRelocate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterHaResourcesSingleRelocate200Response>("/cluster/ha/resources/{sid}/relocate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaResourcesSingleRelocate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaRules Create HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterHaRules(CreateClusterHaRulesRequest createClusterHaRulesRequest = default(CreateClusterHaRulesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterHaRulesWithHttpInfo(createClusterHaRulesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaRules Create HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterHaRulesWithHttpInfo(CreateClusterHaRulesRequest createClusterHaRulesRequest = default(CreateClusterHaRulesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterHaRulesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/ha/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterHaRules Create HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterHaRulesAsync(CreateClusterHaRulesRequest createClusterHaRulesRequest = default(CreateClusterHaRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterHaRulesWithHttpInfoAsync(createClusterHaRulesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterHaRules Create HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterHaRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterHaRulesWithHttpInfoAsync(CreateClusterHaRulesRequest createClusterHaRulesRequest = default(CreateClusterHaRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterHaRulesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterHaRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/ha/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterHaRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterJobsRealmsyncSingle Create new realm-sync job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterJobsRealmsyncSingle(string id, CreateClusterJobsRealmsyncSingleRequest createClusterJobsRealmsyncSingleRequest = default(CreateClusterJobsRealmsyncSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterJobsRealmsyncSingleWithHttpInfo(id, createClusterJobsRealmsyncSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterJobsRealmsyncSingle Create new realm-sync job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterJobsRealmsyncSingleWithHttpInfo(string id, CreateClusterJobsRealmsyncSingleRequest createClusterJobsRealmsyncSingleRequest = default(CreateClusterJobsRealmsyncSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->CreateClusterJobsRealmsyncSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = createClusterJobsRealmsyncSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterJobsRealmsyncSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/jobs/realm-sync/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterJobsRealmsyncSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterJobsRealmsyncSingle Create new realm-sync job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterJobsRealmsyncSingleAsync(string id, CreateClusterJobsRealmsyncSingleRequest createClusterJobsRealmsyncSingleRequest = default(CreateClusterJobsRealmsyncSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterJobsRealmsyncSingleWithHttpInfoAsync(id, createClusterJobsRealmsyncSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterJobsRealmsyncSingle Create new realm-sync job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterJobsRealmsyncSingleWithHttpInfoAsync(string id, CreateClusterJobsRealmsyncSingleRequest createClusterJobsRealmsyncSingleRequest = default(CreateClusterJobsRealmsyncSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->CreateClusterJobsRealmsyncSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = createClusterJobsRealmsyncSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterJobsRealmsyncSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/jobs/realm-sync/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterJobsRealmsyncSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterMappingDir Create a new directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingDirRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterMappingDir(CreateClusterMappingDirRequest createClusterMappingDirRequest = default(CreateClusterMappingDirRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterMappingDirWithHttpInfo(createClusterMappingDirRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterMappingDir Create a new directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingDirRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterMappingDirWithHttpInfo(CreateClusterMappingDirRequest createClusterMappingDirRequest = default(CreateClusterMappingDirRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterMappingDirRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterMappingDir";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/mapping/dir", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterMappingDir", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterMappingDir Create a new directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingDirRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterMappingDirAsync(CreateClusterMappingDirRequest createClusterMappingDirRequest = default(CreateClusterMappingDirRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterMappingDirWithHttpInfoAsync(createClusterMappingDirRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterMappingDir Create a new directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingDirRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterMappingDirWithHttpInfoAsync(CreateClusterMappingDirRequest createClusterMappingDirRequest = default(CreateClusterMappingDirRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterMappingDirRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterMappingDir";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/mapping/dir", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterMappingDir", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterMappingPci Create a new hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingPciRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterMappingPci(CreateClusterMappingPciRequest createClusterMappingPciRequest = default(CreateClusterMappingPciRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterMappingPciWithHttpInfo(createClusterMappingPciRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterMappingPci Create a new hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingPciRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterMappingPciWithHttpInfo(CreateClusterMappingPciRequest createClusterMappingPciRequest = default(CreateClusterMappingPciRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterMappingPciRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterMappingPci";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/mapping/pci", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterMappingPci", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterMappingPci Create a new hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingPciRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterMappingPciAsync(CreateClusterMappingPciRequest createClusterMappingPciRequest = default(CreateClusterMappingPciRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterMappingPciWithHttpInfoAsync(createClusterMappingPciRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterMappingPci Create a new hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingPciRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterMappingPciWithHttpInfoAsync(CreateClusterMappingPciRequest createClusterMappingPciRequest = default(CreateClusterMappingPciRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterMappingPciRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterMappingPci";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/mapping/pci", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterMappingPci", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterMappingUsb Create a new hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingUsbRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterMappingUsb(CreateClusterMappingUsbRequest createClusterMappingUsbRequest = default(CreateClusterMappingUsbRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterMappingUsbWithHttpInfo(createClusterMappingUsbRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterMappingUsb Create a new hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingUsbRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterMappingUsbWithHttpInfo(CreateClusterMappingUsbRequest createClusterMappingUsbRequest = default(CreateClusterMappingUsbRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterMappingUsbRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterMappingUsb";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/mapping/usb", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterMappingUsb", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterMappingUsb Create a new hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingUsbRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterMappingUsbAsync(CreateClusterMappingUsbRequest createClusterMappingUsbRequest = default(CreateClusterMappingUsbRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterMappingUsbWithHttpInfoAsync(createClusterMappingUsbRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterMappingUsb Create a new hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterMappingUsbRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterMappingUsbWithHttpInfoAsync(CreateClusterMappingUsbRequest createClusterMappingUsbRequest = default(CreateClusterMappingUsbRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterMappingUsbRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterMappingUsb";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/mapping/usb", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterMappingUsb", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterMetricsServerSingle Create a new external metric server config
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterMetricsServerSingle(string id, CreateClusterMetricsServerSingleRequest createClusterMetricsServerSingleRequest = default(CreateClusterMetricsServerSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterMetricsServerSingleWithHttpInfo(id, createClusterMetricsServerSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterMetricsServerSingle Create a new external metric server config
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterMetricsServerSingleWithHttpInfo(string id, CreateClusterMetricsServerSingleRequest createClusterMetricsServerSingleRequest = default(CreateClusterMetricsServerSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->CreateClusterMetricsServerSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = createClusterMetricsServerSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterMetricsServerSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/metrics/server/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterMetricsServerSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterMetricsServerSingle Create a new external metric server config
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterMetricsServerSingleAsync(string id, CreateClusterMetricsServerSingleRequest createClusterMetricsServerSingleRequest = default(CreateClusterMetricsServerSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterMetricsServerSingleWithHttpInfoAsync(id, createClusterMetricsServerSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterMetricsServerSingle Create a new external metric server config
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="createClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterMetricsServerSingleWithHttpInfoAsync(string id, CreateClusterMetricsServerSingleRequest createClusterMetricsServerSingleRequest = default(CreateClusterMetricsServerSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->CreateClusterMetricsServerSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = createClusterMetricsServerSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterMetricsServerSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/metrics/server/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterMetricsServerSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsGotify Create a new gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsGotifyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterNotificationsEndpointsGotify(CreateClusterNotificationsEndpointsGotifyRequest createClusterNotificationsEndpointsGotifyRequest = default(CreateClusterNotificationsEndpointsGotifyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterNotificationsEndpointsGotifyWithHttpInfo(createClusterNotificationsEndpointsGotifyRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsGotify Create a new gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsGotifyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsGotifyWithHttpInfo(CreateClusterNotificationsEndpointsGotifyRequest createClusterNotificationsEndpointsGotifyRequest = default(CreateClusterNotificationsEndpointsGotifyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsEndpointsGotifyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsEndpointsGotify";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/notifications/endpoints/gotify", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsEndpointsGotify", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsGotify Create a new gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsGotifyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsGotifyAsync(CreateClusterNotificationsEndpointsGotifyRequest createClusterNotificationsEndpointsGotifyRequest = default(CreateClusterNotificationsEndpointsGotifyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterNotificationsEndpointsGotifyWithHttpInfoAsync(createClusterNotificationsEndpointsGotifyRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsGotify Create a new gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsGotifyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsEndpointsGotifyWithHttpInfoAsync(CreateClusterNotificationsEndpointsGotifyRequest createClusterNotificationsEndpointsGotifyRequest = default(CreateClusterNotificationsEndpointsGotifyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsEndpointsGotifyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsEndpointsGotify";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/gotify", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsEndpointsGotify", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsSendmail Create a new sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSendmailRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterNotificationsEndpointsSendmail(CreateClusterNotificationsEndpointsSendmailRequest createClusterNotificationsEndpointsSendmailRequest = default(CreateClusterNotificationsEndpointsSendmailRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterNotificationsEndpointsSendmailWithHttpInfo(createClusterNotificationsEndpointsSendmailRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsSendmail Create a new sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSendmailRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsSendmailWithHttpInfo(CreateClusterNotificationsEndpointsSendmailRequest createClusterNotificationsEndpointsSendmailRequest = default(CreateClusterNotificationsEndpointsSendmailRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsEndpointsSendmailRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsEndpointsSendmail";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/notifications/endpoints/sendmail", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsEndpointsSendmail", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsSendmail Create a new sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSendmailRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsSendmailAsync(CreateClusterNotificationsEndpointsSendmailRequest createClusterNotificationsEndpointsSendmailRequest = default(CreateClusterNotificationsEndpointsSendmailRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterNotificationsEndpointsSendmailWithHttpInfoAsync(createClusterNotificationsEndpointsSendmailRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsSendmail Create a new sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSendmailRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsEndpointsSendmailWithHttpInfoAsync(CreateClusterNotificationsEndpointsSendmailRequest createClusterNotificationsEndpointsSendmailRequest = default(CreateClusterNotificationsEndpointsSendmailRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsEndpointsSendmailRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsEndpointsSendmail";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/sendmail", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsEndpointsSendmail", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsSmtp Create a new smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSmtpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterNotificationsEndpointsSmtp(CreateClusterNotificationsEndpointsSmtpRequest createClusterNotificationsEndpointsSmtpRequest = default(CreateClusterNotificationsEndpointsSmtpRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterNotificationsEndpointsSmtpWithHttpInfo(createClusterNotificationsEndpointsSmtpRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsSmtp Create a new smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSmtpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsSmtpWithHttpInfo(CreateClusterNotificationsEndpointsSmtpRequest createClusterNotificationsEndpointsSmtpRequest = default(CreateClusterNotificationsEndpointsSmtpRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsEndpointsSmtpRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsEndpointsSmtp";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/notifications/endpoints/smtp", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsEndpointsSmtp", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsSmtp Create a new smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSmtpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsSmtpAsync(CreateClusterNotificationsEndpointsSmtpRequest createClusterNotificationsEndpointsSmtpRequest = default(CreateClusterNotificationsEndpointsSmtpRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterNotificationsEndpointsSmtpWithHttpInfoAsync(createClusterNotificationsEndpointsSmtpRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsSmtp Create a new smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsSmtpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsEndpointsSmtpWithHttpInfoAsync(CreateClusterNotificationsEndpointsSmtpRequest createClusterNotificationsEndpointsSmtpRequest = default(CreateClusterNotificationsEndpointsSmtpRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsEndpointsSmtpRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsEndpointsSmtp";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/smtp", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsEndpointsSmtp", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsWebhook Create a new webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsWebhookRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterNotificationsEndpointsWebhook(CreateClusterNotificationsEndpointsWebhookRequest createClusterNotificationsEndpointsWebhookRequest = default(CreateClusterNotificationsEndpointsWebhookRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterNotificationsEndpointsWebhookWithHttpInfo(createClusterNotificationsEndpointsWebhookRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsWebhook Create a new webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsWebhookRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsWebhookWithHttpInfo(CreateClusterNotificationsEndpointsWebhookRequest createClusterNotificationsEndpointsWebhookRequest = default(CreateClusterNotificationsEndpointsWebhookRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsEndpointsWebhookRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsEndpointsWebhook";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/notifications/endpoints/webhook", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsEndpointsWebhook", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsWebhook Create a new webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsWebhookRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsEndpointsWebhookAsync(CreateClusterNotificationsEndpointsWebhookRequest createClusterNotificationsEndpointsWebhookRequest = default(CreateClusterNotificationsEndpointsWebhookRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterNotificationsEndpointsWebhookWithHttpInfoAsync(createClusterNotificationsEndpointsWebhookRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsEndpointsWebhook Create a new webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsEndpointsWebhookRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsEndpointsWebhookWithHttpInfoAsync(CreateClusterNotificationsEndpointsWebhookRequest createClusterNotificationsEndpointsWebhookRequest = default(CreateClusterNotificationsEndpointsWebhookRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsEndpointsWebhookRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsEndpointsWebhook";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/webhook", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsEndpointsWebhook", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsMatchers Create a new matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsMatchersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterNotificationsMatchers(CreateClusterNotificationsMatchersRequest createClusterNotificationsMatchersRequest = default(CreateClusterNotificationsMatchersRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterNotificationsMatchersWithHttpInfo(createClusterNotificationsMatchersRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsMatchers Create a new matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsMatchersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsMatchersWithHttpInfo(CreateClusterNotificationsMatchersRequest createClusterNotificationsMatchersRequest = default(CreateClusterNotificationsMatchersRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsMatchersRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsMatchers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/notifications/matchers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsMatchers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsMatchers Create a new matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsMatchersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsMatchersAsync(CreateClusterNotificationsMatchersRequest createClusterNotificationsMatchersRequest = default(CreateClusterNotificationsMatchersRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterNotificationsMatchersWithHttpInfoAsync(createClusterNotificationsMatchersRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsMatchers Create a new matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterNotificationsMatchersRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsMatchersWithHttpInfoAsync(CreateClusterNotificationsMatchersRequest createClusterNotificationsMatchersRequest = default(CreateClusterNotificationsMatchersRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterNotificationsMatchersRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsMatchers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/notifications/matchers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsMatchers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsTargetsSingleTest Send a test notification to a provided target.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterNotificationsTargetsSingleTest(string name, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterNotificationsTargetsSingleTestWithHttpInfo(name, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsTargetsSingleTest Send a test notification to a provided target.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterNotificationsTargetsSingleTestWithHttpInfo(string name, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->CreateClusterNotificationsTargetsSingleTest");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsTargetsSingleTest";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/notifications/targets/{name}/test", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsTargetsSingleTest", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterNotificationsTargetsSingleTest Send a test notification to a provided target.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterNotificationsTargetsSingleTestAsync(string name, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterNotificationsTargetsSingleTestWithHttpInfoAsync(name, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterNotificationsTargetsSingleTest Send a test notification to a provided target.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterNotificationsTargetsSingleTestWithHttpInfoAsync(string name, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->CreateClusterNotificationsTargetsSingleTest");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterNotificationsTargetsSingleTest";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/notifications/targets/{name}/test", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterNotificationsTargetsSingleTest", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterReplication Create a new replication job
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterReplicationRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterReplication(CreateClusterReplicationRequest createClusterReplicationRequest = default(CreateClusterReplicationRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterReplicationWithHttpInfo(createClusterReplicationRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterReplication Create a new replication job
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterReplicationRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterReplicationWithHttpInfo(CreateClusterReplicationRequest createClusterReplicationRequest = default(CreateClusterReplicationRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterReplicationRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterReplication";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/replication", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterReplication", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterReplication Create a new replication job
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterReplicationRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterReplicationAsync(CreateClusterReplicationRequest createClusterReplicationRequest = default(CreateClusterReplicationRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterReplicationWithHttpInfoAsync(createClusterReplicationRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterReplication Create a new replication job
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterReplicationRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterReplicationWithHttpInfoAsync(CreateClusterReplicationRequest createClusterReplicationRequest = default(CreateClusterReplicationRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterReplicationRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterReplication";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/replication", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterReplication", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSDNController Create a new sdn controller object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSDNController(CreateClusterSDNControllerRequest createClusterSDNControllerRequest = default(CreateClusterSDNControllerRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSDNControllerWithHttpInfo(createClusterSDNControllerRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSDNController Create a new sdn controller object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSDNControllerWithHttpInfo(CreateClusterSDNControllerRequest createClusterSDNControllerRequest = default(CreateClusterSDNControllerRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSDNControllerRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSDNController";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/controllers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSDNController", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSDNController Create a new sdn controller object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSDNControllerAsync(CreateClusterSDNControllerRequest createClusterSDNControllerRequest = default(CreateClusterSDNControllerRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSDNControllerWithHttpInfoAsync(createClusterSDNControllerRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSDNController Create a new sdn controller object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSDNControllerWithHttpInfoAsync(CreateClusterSDNControllerRequest createClusterSDNControllerRequest = default(CreateClusterSDNControllerRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSDNControllerRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSDNController";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/controllers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSDNController", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSDNVnet Create a new sdn vnet object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSDNVnet(CreateClusterSDNVnetRequest createClusterSDNVnetRequest = default(CreateClusterSDNVnetRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSDNVnetWithHttpInfo(createClusterSDNVnetRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSDNVnet Create a new sdn vnet object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSDNVnetWithHttpInfo(CreateClusterSDNVnetRequest createClusterSDNVnetRequest = default(CreateClusterSDNVnetRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSDNVnetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSDNVnet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/vnets", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSDNVnet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSDNVnet Create a new sdn vnet object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSDNVnetAsync(CreateClusterSDNVnetRequest createClusterSDNVnetRequest = default(CreateClusterSDNVnetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSDNVnetWithHttpInfoAsync(createClusterSDNVnetRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSDNVnet Create a new sdn vnet object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSDNVnetWithHttpInfoAsync(CreateClusterSDNVnetRequest createClusterSDNVnetRequest = default(CreateClusterSDNVnetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSDNVnetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSDNVnet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSDNVnet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSDNZone Create a new sdn zone object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSDNZone(CreateClusterSDNZoneRequest createClusterSDNZoneRequest = default(CreateClusterSDNZoneRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSDNZoneWithHttpInfo(createClusterSDNZoneRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSDNZone Create a new sdn zone object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSDNZoneWithHttpInfo(CreateClusterSDNZoneRequest createClusterSDNZoneRequest = default(CreateClusterSDNZoneRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSDNZoneRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/zones", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSDNZone Create a new sdn zone object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSDNZoneAsync(CreateClusterSDNZoneRequest createClusterSDNZoneRequest = default(CreateClusterSDNZoneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSDNZoneWithHttpInfoAsync(createClusterSDNZoneRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSDNZone Create a new sdn zone object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSDNZoneWithHttpInfoAsync(CreateClusterSDNZoneRequest createClusterSDNZoneRequest = default(CreateClusterSDNZoneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSDNZoneRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/zones", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnDns Create a new sdn dns object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnDns(CreateClusterSdnDnsRequest createClusterSdnDnsRequest = default(CreateClusterSdnDnsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnDnsWithHttpInfo(createClusterSdnDnsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnDns Create a new sdn dns object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnDnsWithHttpInfo(CreateClusterSdnDnsRequest createClusterSdnDnsRequest = default(CreateClusterSdnDnsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnDnsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnDns";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/dns", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnDns", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnDns Create a new sdn dns object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnDnsAsync(CreateClusterSdnDnsRequest createClusterSdnDnsRequest = default(CreateClusterSdnDnsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnDnsWithHttpInfoAsync(createClusterSdnDnsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnDns Create a new sdn dns object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnDnsWithHttpInfoAsync(CreateClusterSdnDnsRequest createClusterSdnDnsRequest = default(CreateClusterSdnDnsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnDnsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnDns";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/dns", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnDns", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnFabricsFabric Add a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnFabricsFabricRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnFabricsFabric(CreateClusterSdnFabricsFabricRequest createClusterSdnFabricsFabricRequest = default(CreateClusterSdnFabricsFabricRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnFabricsFabricWithHttpInfo(createClusterSdnFabricsFabricRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnFabricsFabric Add a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnFabricsFabricRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnFabricsFabricWithHttpInfo(CreateClusterSdnFabricsFabricRequest createClusterSdnFabricsFabricRequest = default(CreateClusterSdnFabricsFabricRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnFabricsFabricRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnFabricsFabric";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/fabrics/fabric", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnFabricsFabric", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnFabricsFabric Add a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnFabricsFabricRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnFabricsFabricAsync(CreateClusterSdnFabricsFabricRequest createClusterSdnFabricsFabricRequest = default(CreateClusterSdnFabricsFabricRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnFabricsFabricWithHttpInfoAsync(createClusterSdnFabricsFabricRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnFabricsFabric Add a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnFabricsFabricRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnFabricsFabricWithHttpInfoAsync(CreateClusterSdnFabricsFabricRequest createClusterSdnFabricsFabricRequest = default(CreateClusterSdnFabricsFabricRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnFabricsFabricRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnFabricsFabric";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/fabrics/fabric", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnFabricsFabric", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnFabricsNodeSingle Add a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="createClusterSdnFabricsNodeSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnFabricsNodeSingle(string fabricId, CreateClusterSdnFabricsNodeSingleRequest createClusterSdnFabricsNodeSingleRequest = default(CreateClusterSdnFabricsNodeSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnFabricsNodeSingleWithHttpInfo(fabricId, createClusterSdnFabricsNodeSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnFabricsNodeSingle Add a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="createClusterSdnFabricsNodeSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnFabricsNodeSingleWithHttpInfo(string fabricId, CreateClusterSdnFabricsNodeSingleRequest createClusterSdnFabricsNodeSingleRequest = default(CreateClusterSdnFabricsNodeSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->CreateClusterSdnFabricsNodeSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter
            localVarRequestOptions.Data = createClusterSdnFabricsNodeSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnFabricsNodeSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/fabrics/node/{fabric_id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnFabricsNodeSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnFabricsNodeSingle Add a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="createClusterSdnFabricsNodeSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnFabricsNodeSingleAsync(string fabricId, CreateClusterSdnFabricsNodeSingleRequest createClusterSdnFabricsNodeSingleRequest = default(CreateClusterSdnFabricsNodeSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnFabricsNodeSingleWithHttpInfoAsync(fabricId, createClusterSdnFabricsNodeSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnFabricsNodeSingle Add a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="createClusterSdnFabricsNodeSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnFabricsNodeSingleWithHttpInfoAsync(string fabricId, CreateClusterSdnFabricsNodeSingleRequest createClusterSdnFabricsNodeSingleRequest = default(CreateClusterSdnFabricsNodeSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->CreateClusterSdnFabricsNodeSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter
            localVarRequestOptions.Data = createClusterSdnFabricsNodeSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnFabricsNodeSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/fabrics/node/{fabric_id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnFabricsNodeSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnIpams Create a new sdn ipam object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnIpamsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnIpams(CreateClusterSdnIpamsRequest createClusterSdnIpamsRequest = default(CreateClusterSdnIpamsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnIpamsWithHttpInfo(createClusterSdnIpamsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnIpams Create a new sdn ipam object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnIpamsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnIpamsWithHttpInfo(CreateClusterSdnIpamsRequest createClusterSdnIpamsRequest = default(CreateClusterSdnIpamsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnIpamsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnIpams";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/ipams", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnIpams", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnIpams Create a new sdn ipam object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnIpamsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnIpamsAsync(CreateClusterSdnIpamsRequest createClusterSdnIpamsRequest = default(CreateClusterSdnIpamsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnIpamsWithHttpInfoAsync(createClusterSdnIpamsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnIpams Create a new sdn ipam object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnIpamsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnIpamsWithHttpInfoAsync(CreateClusterSdnIpamsRequest createClusterSdnIpamsRequest = default(CreateClusterSdnIpamsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnIpamsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnIpams";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/ipams", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnIpams", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnLock Acquire global lock for SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnLockRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnLock(CreateClusterSdnLockRequest createClusterSdnLockRequest = default(CreateClusterSdnLockRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnLockWithHttpInfo(createClusterSdnLockRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnLock Acquire global lock for SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnLockRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnLockWithHttpInfo(CreateClusterSdnLockRequest createClusterSdnLockRequest = default(CreateClusterSdnLockRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnLockRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnLock";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/lock", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnLock", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnLock Acquire global lock for SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnLockRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnLockAsync(CreateClusterSdnLockRequest createClusterSdnLockRequest = default(CreateClusterSdnLockRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnLockWithHttpInfoAsync(createClusterSdnLockRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnLock Acquire global lock for SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnLockRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnLockWithHttpInfoAsync(CreateClusterSdnLockRequest createClusterSdnLockRequest = default(CreateClusterSdnLockRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnLockRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnLock";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/lock", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnLock", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnRollback Rollback pending changes to SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnRollback(CreateClusterSdnRollbackRequest createClusterSdnRollbackRequest = default(CreateClusterSdnRollbackRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnRollbackWithHttpInfo(createClusterSdnRollbackRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnRollback Rollback pending changes to SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnRollbackWithHttpInfo(CreateClusterSdnRollbackRequest createClusterSdnRollbackRequest = default(CreateClusterSdnRollbackRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnRollbackRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnRollback";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/rollback", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnRollback", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnRollback Rollback pending changes to SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnRollbackAsync(CreateClusterSdnRollbackRequest createClusterSdnRollbackRequest = default(CreateClusterSdnRollbackRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnRollbackWithHttpInfoAsync(createClusterSdnRollbackRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnRollback Rollback pending changes to SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createClusterSdnRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnRollbackWithHttpInfoAsync(CreateClusterSdnRollbackRequest createClusterSdnRollbackRequest = default(CreateClusterSdnRollbackRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createClusterSdnRollbackRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnRollback";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/rollback", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnRollback", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleFirewallRules Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnVnetsSingleFirewallRules(string vnet, CreateClusterSdnVnetsSingleFirewallRulesRequest createClusterSdnVnetsSingleFirewallRulesRequest = default(CreateClusterSdnVnetsSingleFirewallRulesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnVnetsSingleFirewallRulesWithHttpInfo(vnet, createClusterSdnVnetsSingleFirewallRulesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleFirewallRules Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleFirewallRulesWithHttpInfo(string vnet, CreateClusterSdnVnetsSingleFirewallRulesRequest createClusterSdnVnetsSingleFirewallRulesRequest = default(CreateClusterSdnVnetsSingleFirewallRulesRequest), int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->CreateClusterSdnVnetsSingleFirewallRules");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = createClusterSdnVnetsSingleFirewallRulesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnVnetsSingleFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnVnetsSingleFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleFirewallRules Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleFirewallRulesAsync(string vnet, CreateClusterSdnVnetsSingleFirewallRulesRequest createClusterSdnVnetsSingleFirewallRulesRequest = default(CreateClusterSdnVnetsSingleFirewallRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnVnetsSingleFirewallRulesWithHttpInfoAsync(vnet, createClusterSdnVnetsSingleFirewallRulesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleFirewallRules Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnVnetsSingleFirewallRulesWithHttpInfoAsync(string vnet, CreateClusterSdnVnetsSingleFirewallRulesRequest createClusterSdnVnetsSingleFirewallRulesRequest = default(CreateClusterSdnVnetsSingleFirewallRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->CreateClusterSdnVnetsSingleFirewallRules");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = createClusterSdnVnetsSingleFirewallRulesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnVnetsSingleFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnVnetsSingleFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleIps Create IP Mapping in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnVnetsSingleIps(string vnet, CreateClusterSdnVnetsSingleIpsRequest createClusterSdnVnetsSingleIpsRequest = default(CreateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnVnetsSingleIpsWithHttpInfo(vnet, createClusterSdnVnetsSingleIpsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleIps Create IP Mapping in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleIpsWithHttpInfo(string vnet, CreateClusterSdnVnetsSingleIpsRequest createClusterSdnVnetsSingleIpsRequest = default(CreateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->CreateClusterSdnVnetsSingleIps");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = createClusterSdnVnetsSingleIpsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnVnetsSingleIps";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/ips", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnVnetsSingleIps", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleIps Create IP Mapping in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleIpsAsync(string vnet, CreateClusterSdnVnetsSingleIpsRequest createClusterSdnVnetsSingleIpsRequest = default(CreateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnVnetsSingleIpsWithHttpInfoAsync(vnet, createClusterSdnVnetsSingleIpsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleIps Create IP Mapping in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnVnetsSingleIpsWithHttpInfoAsync(string vnet, CreateClusterSdnVnetsSingleIpsRequest createClusterSdnVnetsSingleIpsRequest = default(CreateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->CreateClusterSdnVnetsSingleIps");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = createClusterSdnVnetsSingleIpsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnVnetsSingleIps";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/ips", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnVnetsSingleIps", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleSubnets Create a new sdn subnet object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleSubnetsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateClusterSdnVnetsSingleSubnets(string vnet, CreateClusterSdnVnetsSingleSubnetsRequest createClusterSdnVnetsSingleSubnetsRequest = default(CreateClusterSdnVnetsSingleSubnetsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateClusterSdnVnetsSingleSubnetsWithHttpInfo(vnet, createClusterSdnVnetsSingleSubnetsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleSubnets Create a new sdn subnet object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleSubnetsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleSubnetsWithHttpInfo(string vnet, CreateClusterSdnVnetsSingleSubnetsRequest createClusterSdnVnetsSingleSubnetsRequest = default(CreateClusterSdnVnetsSingleSubnetsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->CreateClusterSdnVnetsSingleSubnets");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = createClusterSdnVnetsSingleSubnetsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnVnetsSingleSubnets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/subnets", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnVnetsSingleSubnets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleSubnets Create a new sdn subnet object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleSubnetsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateClusterSdnVnetsSingleSubnetsAsync(string vnet, CreateClusterSdnVnetsSingleSubnetsRequest createClusterSdnVnetsSingleSubnetsRequest = default(CreateClusterSdnVnetsSingleSubnetsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateClusterSdnVnetsSingleSubnetsWithHttpInfoAsync(vnet, createClusterSdnVnetsSingleSubnetsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createClusterSdnVnetsSingleSubnets Create a new sdn subnet object.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="createClusterSdnVnetsSingleSubnetsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateClusterSdnVnetsSingleSubnetsWithHttpInfoAsync(string vnet, CreateClusterSdnVnetsSingleSubnetsRequest createClusterSdnVnetsSingleSubnetsRequest = default(CreateClusterSdnVnetsSingleSubnetsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->CreateClusterSdnVnetsSingleSubnets");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = createClusterSdnVnetsSingleSubnetsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateClusterSdnVnetsSingleSubnets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/subnets", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClusterSdnVnetsSingleSubnets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodeFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodeFirewallRule(string node, CreateNodeFirewallRuleRequest createNodeFirewallRuleRequest = default(CreateNodeFirewallRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodeFirewallRuleWithHttpInfo(node, createNodeFirewallRuleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodeFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodeFirewallRuleWithHttpInfo(string node, CreateNodeFirewallRuleRequest createNodeFirewallRuleRequest = default(CreateNodeFirewallRuleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodeFirewallRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodeFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodeFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodeFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodeFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodeFirewallRuleAsync(string node, CreateNodeFirewallRuleRequest createNodeFirewallRuleRequest = default(CreateNodeFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodeFirewallRuleWithHttpInfoAsync(node, createNodeFirewallRuleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodeFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodeFirewallRuleWithHttpInfoAsync(string node, CreateNodeFirewallRuleRequest createNodeFirewallRuleRequest = default(CreateNodeFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodeFirewallRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodeFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodeFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodeFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleAplinfo Download appliance templates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAplinfoRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleAplinfo(string node, CreateNodesSingleAplinfoRequest createNodesSingleAplinfoRequest = default(CreateNodesSingleAplinfoRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleAplinfoWithHttpInfo(node, createNodesSingleAplinfoRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleAplinfo Download appliance templates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAplinfoRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleAplinfoWithHttpInfo(string node, CreateNodesSingleAplinfoRequest createNodesSingleAplinfoRequest = default(CreateNodesSingleAplinfoRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleAplinfo");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleAplinfoRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleAplinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/aplinfo", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleAplinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleAplinfo Download appliance templates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAplinfoRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleAplinfoAsync(string node, CreateNodesSingleAplinfoRequest createNodesSingleAplinfoRequest = default(CreateNodesSingleAplinfoRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleAplinfoWithHttpInfoAsync(node, createNodesSingleAplinfoRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleAplinfo Download appliance templates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAplinfoRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleAplinfoWithHttpInfoAsync(string node, CreateNodesSingleAplinfoRequest createNodesSingleAplinfoRequest = default(CreateNodesSingleAplinfoRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleAplinfo");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleAplinfoRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleAplinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/aplinfo", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleAplinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleAptRepositories Change the properties of a repository. Currently only allows enabling/disabling.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleAptRepositories(string node, CreateNodesSingleAptRepositoriesRequest createNodesSingleAptRepositoriesRequest = default(CreateNodesSingleAptRepositoriesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleAptRepositoriesWithHttpInfo(node, createNodesSingleAptRepositoriesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleAptRepositories Change the properties of a repository. Currently only allows enabling/disabling.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleAptRepositoriesWithHttpInfo(string node, CreateNodesSingleAptRepositoriesRequest createNodesSingleAptRepositoriesRequest = default(CreateNodesSingleAptRepositoriesRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleAptRepositories");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleAptRepositoriesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleAptRepositories";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/apt/repositories", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleAptRepositories", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleAptRepositories Change the properties of a repository. Currently only allows enabling/disabling.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleAptRepositoriesAsync(string node, CreateNodesSingleAptRepositoriesRequest createNodesSingleAptRepositoriesRequest = default(CreateNodesSingleAptRepositoriesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleAptRepositoriesWithHttpInfoAsync(node, createNodesSingleAptRepositoriesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleAptRepositories Change the properties of a repository. Currently only allows enabling/disabling.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleAptRepositoriesWithHttpInfoAsync(string node, CreateNodesSingleAptRepositoriesRequest createNodesSingleAptRepositoriesRequest = default(CreateNodesSingleAptRepositoriesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleAptRepositories");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleAptRepositoriesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleAptRepositories";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/apt/repositories", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleAptRepositories", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleAptUpdate This is used to resynchronize the package index files from their sources (apt-get update).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptUpdateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleAptUpdate(string node, CreateNodesSingleAptUpdateRequest createNodesSingleAptUpdateRequest = default(CreateNodesSingleAptUpdateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleAptUpdateWithHttpInfo(node, createNodesSingleAptUpdateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleAptUpdate This is used to resynchronize the package index files from their sources (apt-get update).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptUpdateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleAptUpdateWithHttpInfo(string node, CreateNodesSingleAptUpdateRequest createNodesSingleAptUpdateRequest = default(CreateNodesSingleAptUpdateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleAptUpdate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleAptUpdateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleAptUpdate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/apt/update", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleAptUpdate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleAptUpdate This is used to resynchronize the package index files from their sources (apt-get update).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptUpdateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleAptUpdateAsync(string node, CreateNodesSingleAptUpdateRequest createNodesSingleAptUpdateRequest = default(CreateNodesSingleAptUpdateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleAptUpdateWithHttpInfoAsync(node, createNodesSingleAptUpdateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleAptUpdate This is used to resynchronize the package index files from their sources (apt-get update).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleAptUpdateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleAptUpdateWithHttpInfoAsync(string node, CreateNodesSingleAptUpdateRequest createNodesSingleAptUpdateRequest = default(CreateNodesSingleAptUpdateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleAptUpdate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleAptUpdateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleAptUpdate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/apt/update", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleAptUpdate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephFsSingle Create a Ceph filesystem
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephFsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephFsSingle(string name, string node, CreateNodesSingleCephFsSingleRequest createNodesSingleCephFsSingleRequest = default(CreateNodesSingleCephFsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephFsSingleWithHttpInfo(name, node, createNodesSingleCephFsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephFsSingle Create a Ceph filesystem
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephFsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephFsSingleWithHttpInfo(string name, string node, CreateNodesSingleCephFsSingleRequest createNodesSingleCephFsSingleRequest = default(CreateNodesSingleCephFsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->CreateNodesSingleCephFsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephFsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephFsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephFsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/fs/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephFsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephFsSingle Create a Ceph filesystem
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephFsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephFsSingleAsync(string name, string node, CreateNodesSingleCephFsSingleRequest createNodesSingleCephFsSingleRequest = default(CreateNodesSingleCephFsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephFsSingleWithHttpInfoAsync(name, node, createNodesSingleCephFsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephFsSingle Create a Ceph filesystem
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephFsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephFsSingleWithHttpInfoAsync(string name, string node, CreateNodesSingleCephFsSingleRequest createNodesSingleCephFsSingleRequest = default(CreateNodesSingleCephFsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->CreateNodesSingleCephFsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephFsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephFsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephFsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/fs/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephFsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephInit Create initial ceph default configuration and setup symlinks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephInitRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephInit(string node, CreateNodesSingleCephInitRequest createNodesSingleCephInitRequest = default(CreateNodesSingleCephInitRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephInitWithHttpInfo(node, createNodesSingleCephInitRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephInit Create initial ceph default configuration and setup symlinks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephInitRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephInitWithHttpInfo(string node, CreateNodesSingleCephInitRequest createNodesSingleCephInitRequest = default(CreateNodesSingleCephInitRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephInit");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephInitRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephInit";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/init", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephInit", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephInit Create initial ceph default configuration and setup symlinks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephInitRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephInitAsync(string node, CreateNodesSingleCephInitRequest createNodesSingleCephInitRequest = default(CreateNodesSingleCephInitRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephInitWithHttpInfoAsync(node, createNodesSingleCephInitRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephInit Create initial ceph default configuration and setup symlinks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephInitRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephInitWithHttpInfoAsync(string node, CreateNodesSingleCephInitRequest createNodesSingleCephInitRequest = default(CreateNodesSingleCephInitRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephInit");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephInitRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephInit";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/init", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephInit", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephMdsSingle Create Ceph Metadata Server (MDS)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMdsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephMdsSingle(string name, string node, CreateNodesSingleCephMdsSingleRequest createNodesSingleCephMdsSingleRequest = default(CreateNodesSingleCephMdsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephMdsSingleWithHttpInfo(name, node, createNodesSingleCephMdsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephMdsSingle Create Ceph Metadata Server (MDS)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMdsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephMdsSingleWithHttpInfo(string name, string node, CreateNodesSingleCephMdsSingleRequest createNodesSingleCephMdsSingleRequest = default(CreateNodesSingleCephMdsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMdsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMdsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephMdsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephMdsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/mds/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephMdsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephMdsSingle Create Ceph Metadata Server (MDS)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMdsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephMdsSingleAsync(string name, string node, CreateNodesSingleCephMdsSingleRequest createNodesSingleCephMdsSingleRequest = default(CreateNodesSingleCephMdsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephMdsSingleWithHttpInfoAsync(name, node, createNodesSingleCephMdsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephMdsSingle Create Ceph Metadata Server (MDS)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMdsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephMdsSingleWithHttpInfoAsync(string name, string node, CreateNodesSingleCephMdsSingleRequest createNodesSingleCephMdsSingleRequest = default(CreateNodesSingleCephMdsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMdsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMdsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephMdsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephMdsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/mds/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephMdsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephMgrSingle Create Ceph Manager
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephMgrSingle(string id, string node, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephMgrSingleWithHttpInfo(id, node, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephMgrSingle Create Ceph Manager
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephMgrSingleWithHttpInfo(string id, string node, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMgrSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMgrSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephMgrSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/mgr/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephMgrSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephMgrSingle Create Ceph Manager
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephMgrSingleAsync(string id, string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephMgrSingleWithHttpInfoAsync(id, node, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephMgrSingle Create Ceph Manager
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephMgrSingleWithHttpInfoAsync(string id, string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMgrSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMgrSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephMgrSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/mgr/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephMgrSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephMonSingle Create Ceph Monitor and Manager
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMonSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephMonSingle(string monid, string node, CreateNodesSingleCephMonSingleRequest createNodesSingleCephMonSingleRequest = default(CreateNodesSingleCephMonSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephMonSingleWithHttpInfo(monid, node, createNodesSingleCephMonSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephMonSingle Create Ceph Monitor and Manager
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMonSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephMonSingleWithHttpInfo(string monid, string node, CreateNodesSingleCephMonSingleRequest createNodesSingleCephMonSingleRequest = default(CreateNodesSingleCephMonSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'monid' is set
            if (monid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'monid' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMonSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMonSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("monid", ProxmoxSharp.Client.ClientUtils.ParameterToString(monid)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephMonSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephMonSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/mon/{monid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephMonSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephMonSingle Create Ceph Monitor and Manager
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMonSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephMonSingleAsync(string monid, string node, CreateNodesSingleCephMonSingleRequest createNodesSingleCephMonSingleRequest = default(CreateNodesSingleCephMonSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephMonSingleWithHttpInfoAsync(monid, node, createNodesSingleCephMonSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephMonSingle Create Ceph Monitor and Manager
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephMonSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephMonSingleWithHttpInfoAsync(string monid, string node, CreateNodesSingleCephMonSingleRequest createNodesSingleCephMonSingleRequest = default(CreateNodesSingleCephMonSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'monid' is set
            if (monid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'monid' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMonSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephMonSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("monid", ProxmoxSharp.Client.ClientUtils.ParameterToString(monid)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephMonSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephMonSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/mon/{monid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephMonSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephOsd Create OSD
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephOsdRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephOsd(string node, CreateNodesSingleCephOsdRequest createNodesSingleCephOsdRequest = default(CreateNodesSingleCephOsdRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephOsdWithHttpInfo(node, createNodesSingleCephOsdRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephOsd Create OSD
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephOsdRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephOsdWithHttpInfo(string node, CreateNodesSingleCephOsdRequest createNodesSingleCephOsdRequest = default(CreateNodesSingleCephOsdRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephOsd");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephOsdRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephOsd";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephOsd", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephOsd Create OSD
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephOsdRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephOsdAsync(string node, CreateNodesSingleCephOsdRequest createNodesSingleCephOsdRequest = default(CreateNodesSingleCephOsdRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephOsdWithHttpInfoAsync(node, createNodesSingleCephOsdRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephOsd Create OSD
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephOsdRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephOsdWithHttpInfoAsync(string node, CreateNodesSingleCephOsdRequest createNodesSingleCephOsdRequest = default(CreateNodesSingleCephOsdRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephOsd");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephOsdRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephOsd";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephOsd", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleIn ceph osd in
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephOsdSingleIn(string node, int osdid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephOsdSingleInWithHttpInfo(node, osdid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleIn ceph osd in
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleInWithHttpInfo(string node, int osdid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephOsdSingleIn");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephOsdSingleIn";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd/{osdid}/in", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephOsdSingleIn", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleIn ceph osd in
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleInAsync(string node, int osdid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephOsdSingleInWithHttpInfoAsync(node, osdid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleIn ceph osd in
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephOsdSingleInWithHttpInfoAsync(string node, int osdid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephOsdSingleIn");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephOsdSingleIn";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd/{osdid}/in", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephOsdSingleIn", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleOut ceph osd out
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephOsdSingleOut(string node, int osdid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephOsdSingleOutWithHttpInfo(node, osdid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleOut ceph osd out
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleOutWithHttpInfo(string node, int osdid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephOsdSingleOut");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephOsdSingleOut";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd/{osdid}/out", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephOsdSingleOut", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleOut ceph osd out
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleOutAsync(string node, int osdid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephOsdSingleOutWithHttpInfoAsync(node, osdid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleOut ceph osd out
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephOsdSingleOutWithHttpInfoAsync(string node, int osdid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephOsdSingleOut");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephOsdSingleOut";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd/{osdid}/out", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephOsdSingleOut", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleScrub Instruct the OSD to scrub.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="createNodesSingleCephOsdSingleScrubRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephOsdSingleScrub(string node, int osdid, CreateNodesSingleCephOsdSingleScrubRequest createNodesSingleCephOsdSingleScrubRequest = default(CreateNodesSingleCephOsdSingleScrubRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephOsdSingleScrubWithHttpInfo(node, osdid, createNodesSingleCephOsdSingleScrubRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleScrub Instruct the OSD to scrub.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="createNodesSingleCephOsdSingleScrubRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleScrubWithHttpInfo(string node, int osdid, CreateNodesSingleCephOsdSingleScrubRequest createNodesSingleCephOsdSingleScrubRequest = default(CreateNodesSingleCephOsdSingleScrubRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephOsdSingleScrub");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephOsdSingleScrubRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephOsdSingleScrub";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd/{osdid}/scrub", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephOsdSingleScrub", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleScrub Instruct the OSD to scrub.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="createNodesSingleCephOsdSingleScrubRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephOsdSingleScrubAsync(string node, int osdid, CreateNodesSingleCephOsdSingleScrubRequest createNodesSingleCephOsdSingleScrubRequest = default(CreateNodesSingleCephOsdSingleScrubRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephOsdSingleScrubWithHttpInfoAsync(node, osdid, createNodesSingleCephOsdSingleScrubRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephOsdSingleScrub Instruct the OSD to scrub.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="createNodesSingleCephOsdSingleScrubRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephOsdSingleScrubWithHttpInfoAsync(string node, int osdid, CreateNodesSingleCephOsdSingleScrubRequest createNodesSingleCephOsdSingleScrubRequest = default(CreateNodesSingleCephOsdSingleScrubRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephOsdSingleScrub");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephOsdSingleScrubRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephOsdSingleScrub";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd/{osdid}/scrub", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephOsdSingleScrub", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephPool Create Ceph pool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephPool(string node, CreateNodesSingleCephPoolRequest createNodesSingleCephPoolRequest = default(CreateNodesSingleCephPoolRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephPoolWithHttpInfo(node, createNodesSingleCephPoolRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephPool Create Ceph pool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephPoolWithHttpInfo(string node, CreateNodesSingleCephPoolRequest createNodesSingleCephPoolRequest = default(CreateNodesSingleCephPoolRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephPool");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephPoolRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephPool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/pool", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephPool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephPool Create Ceph pool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephPoolAsync(string node, CreateNodesSingleCephPoolRequest createNodesSingleCephPoolRequest = default(CreateNodesSingleCephPoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephPoolWithHttpInfoAsync(node, createNodesSingleCephPoolRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephPool Create Ceph pool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephPoolWithHttpInfoAsync(string node, CreateNodesSingleCephPoolRequest createNodesSingleCephPoolRequest = default(CreateNodesSingleCephPoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephPool");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephPoolRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephPool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/pool", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephPool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephRestart Restart ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephRestartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephRestart(string node, CreateNodesSingleCephRestartRequest createNodesSingleCephRestartRequest = default(CreateNodesSingleCephRestartRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephRestartWithHttpInfo(node, createNodesSingleCephRestartRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephRestart Restart ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephRestartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephRestartWithHttpInfo(string node, CreateNodesSingleCephRestartRequest createNodesSingleCephRestartRequest = default(CreateNodesSingleCephRestartRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephRestart");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephRestartRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephRestart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/restart", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephRestart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephRestart Restart ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephRestartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephRestartAsync(string node, CreateNodesSingleCephRestartRequest createNodesSingleCephRestartRequest = default(CreateNodesSingleCephRestartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephRestartWithHttpInfoAsync(node, createNodesSingleCephRestartRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephRestart Restart ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephRestartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephRestartWithHttpInfoAsync(string node, CreateNodesSingleCephRestartRequest createNodesSingleCephRestartRequest = default(CreateNodesSingleCephRestartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephRestart");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephRestartRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephRestart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/restart", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephRestart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephStart Start ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephStart(string node, CreateNodesSingleCephStartRequest createNodesSingleCephStartRequest = default(CreateNodesSingleCephStartRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephStartWithHttpInfo(node, createNodesSingleCephStartRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephStart Start ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephStartWithHttpInfo(string node, CreateNodesSingleCephStartRequest createNodesSingleCephStartRequest = default(CreateNodesSingleCephStartRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephStart");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephStartRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephStart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/start", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephStart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephStart Start ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephStartAsync(string node, CreateNodesSingleCephStartRequest createNodesSingleCephStartRequest = default(CreateNodesSingleCephStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephStartWithHttpInfoAsync(node, createNodesSingleCephStartRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephStart Start ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephStartWithHttpInfoAsync(string node, CreateNodesSingleCephStartRequest createNodesSingleCephStartRequest = default(CreateNodesSingleCephStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephStart");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephStartRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephStart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/start", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephStart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephStop Stop ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCephStop(string node, CreateNodesSingleCephStopRequest createNodesSingleCephStopRequest = default(CreateNodesSingleCephStopRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCephStopWithHttpInfo(node, createNodesSingleCephStopRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephStop Stop ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCephStopWithHttpInfo(string node, CreateNodesSingleCephStopRequest createNodesSingleCephStopRequest = default(CreateNodesSingleCephStopRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephStop");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephStopRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephStop";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/ceph/stop", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephStop", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCephStop Stop ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCephStopAsync(string node, CreateNodesSingleCephStopRequest createNodesSingleCephStopRequest = default(CreateNodesSingleCephStopRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCephStopWithHttpInfoAsync(node, createNodesSingleCephStopRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCephStop Stop ceph services.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCephStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCephStopWithHttpInfoAsync(string node, CreateNodesSingleCephStopRequest createNodesSingleCephStopRequest = default(CreateNodesSingleCephStopRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCephStop");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCephStopRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCephStop";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/stop", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCephStop", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCertificatesAcmeCertificate Order a new certificate from ACME-compatible CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleCertificatesAcmeCertificate(string node, CreateNodesSingleCertificatesAcmeCertificateRequest createNodesSingleCertificatesAcmeCertificateRequest = default(CreateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleCertificatesAcmeCertificateWithHttpInfo(node, createNodesSingleCertificatesAcmeCertificateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCertificatesAcmeCertificate Order a new certificate from ACME-compatible CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleCertificatesAcmeCertificateWithHttpInfo(string node, CreateNodesSingleCertificatesAcmeCertificateRequest createNodesSingleCertificatesAcmeCertificateRequest = default(CreateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCertificatesAcmeCertificate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCertificatesAcmeCertificateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCertificatesAcmeCertificate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/certificates/acme/certificate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCertificatesAcmeCertificate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCertificatesAcmeCertificate Order a new certificate from ACME-compatible CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleCertificatesAcmeCertificateAsync(string node, CreateNodesSingleCertificatesAcmeCertificateRequest createNodesSingleCertificatesAcmeCertificateRequest = default(CreateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(node, createNodesSingleCertificatesAcmeCertificateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCertificatesAcmeCertificate Order a new certificate from ACME-compatible CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(string node, CreateNodesSingleCertificatesAcmeCertificateRequest createNodesSingleCertificatesAcmeCertificateRequest = default(CreateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCertificatesAcmeCertificate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCertificatesAcmeCertificateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCertificatesAcmeCertificate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/certificates/acme/certificate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCertificatesAcmeCertificate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCertificatesCustom Upload or update custom certificate chain and key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesCustomRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleCertificatesCustom200Response</returns>
        public CreateNodesSingleCertificatesCustom200Response CreateNodesSingleCertificatesCustom(string node, CreateNodesSingleCertificatesCustomRequest createNodesSingleCertificatesCustomRequest = default(CreateNodesSingleCertificatesCustomRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleCertificatesCustom200Response> localVarResponse = CreateNodesSingleCertificatesCustomWithHttpInfo(node, createNodesSingleCertificatesCustomRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCertificatesCustom Upload or update custom certificate chain and key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesCustomRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleCertificatesCustom200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleCertificatesCustom200Response> CreateNodesSingleCertificatesCustomWithHttpInfo(string node, CreateNodesSingleCertificatesCustomRequest createNodesSingleCertificatesCustomRequest = default(CreateNodesSingleCertificatesCustomRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCertificatesCustom");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCertificatesCustomRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCertificatesCustom";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleCertificatesCustom200Response>("/nodes/{node}/certificates/custom", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCertificatesCustom", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleCertificatesCustom Upload or update custom certificate chain and key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesCustomRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleCertificatesCustom200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleCertificatesCustom200Response> CreateNodesSingleCertificatesCustomAsync(string node, CreateNodesSingleCertificatesCustomRequest createNodesSingleCertificatesCustomRequest = default(CreateNodesSingleCertificatesCustomRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleCertificatesCustom200Response> localVarResponse = await CreateNodesSingleCertificatesCustomWithHttpInfoAsync(node, createNodesSingleCertificatesCustomRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleCertificatesCustom Upload or update custom certificate chain and key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleCertificatesCustomRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleCertificatesCustom200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleCertificatesCustom200Response>> CreateNodesSingleCertificatesCustomWithHttpInfoAsync(string node, CreateNodesSingleCertificatesCustomRequest createNodesSingleCertificatesCustomRequest = default(CreateNodesSingleCertificatesCustomRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleCertificatesCustom");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleCertificatesCustomRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleCertificatesCustom";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleCertificatesCustom200Response>("/nodes/{node}/certificates/custom", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleCertificatesCustom", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksDirectory Create a Filesystem on an unused disk. Will be mounted under &#39;/mnt/pve/NAME&#39;.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksDirectoryRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleDisksDirectory(string node, CreateNodesSingleDisksDirectoryRequest createNodesSingleDisksDirectoryRequest = default(CreateNodesSingleDisksDirectoryRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleDisksDirectoryWithHttpInfo(node, createNodesSingleDisksDirectoryRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksDirectory Create a Filesystem on an unused disk. Will be mounted under &#39;/mnt/pve/NAME&#39;.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksDirectoryRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksDirectoryWithHttpInfo(string node, CreateNodesSingleDisksDirectoryRequest createNodesSingleDisksDirectoryRequest = default(CreateNodesSingleDisksDirectoryRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksDirectory");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksDirectoryRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksDirectory";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/disks/directory", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksDirectory", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksDirectory Create a Filesystem on an unused disk. Will be mounted under &#39;/mnt/pve/NAME&#39;.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksDirectoryRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksDirectoryAsync(string node, CreateNodesSingleDisksDirectoryRequest createNodesSingleDisksDirectoryRequest = default(CreateNodesSingleDisksDirectoryRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleDisksDirectoryWithHttpInfoAsync(node, createNodesSingleDisksDirectoryRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksDirectory Create a Filesystem on an unused disk. Will be mounted under &#39;/mnt/pve/NAME&#39;.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksDirectoryRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksDirectoryWithHttpInfoAsync(string node, CreateNodesSingleDisksDirectoryRequest createNodesSingleDisksDirectoryRequest = default(CreateNodesSingleDisksDirectoryRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksDirectory");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksDirectoryRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksDirectory";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/directory", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksDirectory", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksInitgpt Initialize Disk with GPT
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksInitgptRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleDisksInitgpt(string node, CreateNodesSingleDisksInitgptRequest createNodesSingleDisksInitgptRequest = default(CreateNodesSingleDisksInitgptRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleDisksInitgptWithHttpInfo(node, createNodesSingleDisksInitgptRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksInitgpt Initialize Disk with GPT
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksInitgptRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksInitgptWithHttpInfo(string node, CreateNodesSingleDisksInitgptRequest createNodesSingleDisksInitgptRequest = default(CreateNodesSingleDisksInitgptRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksInitgpt");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksInitgptRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksInitgpt";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/disks/initgpt", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksInitgpt", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksInitgpt Initialize Disk with GPT
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksInitgptRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksInitgptAsync(string node, CreateNodesSingleDisksInitgptRequest createNodesSingleDisksInitgptRequest = default(CreateNodesSingleDisksInitgptRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleDisksInitgptWithHttpInfoAsync(node, createNodesSingleDisksInitgptRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksInitgpt Initialize Disk with GPT
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksInitgptRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksInitgptWithHttpInfoAsync(string node, CreateNodesSingleDisksInitgptRequest createNodesSingleDisksInitgptRequest = default(CreateNodesSingleDisksInitgptRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksInitgpt");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksInitgptRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksInitgpt";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/initgpt", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksInitgpt", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksLvm Create an LVM Volume Group
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleDisksLvm(string node, CreateNodesSingleDisksLvmRequest createNodesSingleDisksLvmRequest = default(CreateNodesSingleDisksLvmRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleDisksLvmWithHttpInfo(node, createNodesSingleDisksLvmRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksLvm Create an LVM Volume Group
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksLvmWithHttpInfo(string node, CreateNodesSingleDisksLvmRequest createNodesSingleDisksLvmRequest = default(CreateNodesSingleDisksLvmRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksLvm");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksLvmRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksLvm";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/disks/lvm", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksLvm", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksLvm Create an LVM Volume Group
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksLvmAsync(string node, CreateNodesSingleDisksLvmRequest createNodesSingleDisksLvmRequest = default(CreateNodesSingleDisksLvmRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleDisksLvmWithHttpInfoAsync(node, createNodesSingleDisksLvmRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksLvm Create an LVM Volume Group
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksLvmWithHttpInfoAsync(string node, CreateNodesSingleDisksLvmRequest createNodesSingleDisksLvmRequest = default(CreateNodesSingleDisksLvmRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksLvm");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksLvmRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksLvm";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/lvm", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksLvm", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksLvmthin Create an LVM thinpool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmthinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleDisksLvmthin(string node, CreateNodesSingleDisksLvmthinRequest createNodesSingleDisksLvmthinRequest = default(CreateNodesSingleDisksLvmthinRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleDisksLvmthinWithHttpInfo(node, createNodesSingleDisksLvmthinRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksLvmthin Create an LVM thinpool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmthinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksLvmthinWithHttpInfo(string node, CreateNodesSingleDisksLvmthinRequest createNodesSingleDisksLvmthinRequest = default(CreateNodesSingleDisksLvmthinRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksLvmthin");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksLvmthinRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksLvmthin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/disks/lvmthin", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksLvmthin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksLvmthin Create an LVM thinpool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmthinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksLvmthinAsync(string node, CreateNodesSingleDisksLvmthinRequest createNodesSingleDisksLvmthinRequest = default(CreateNodesSingleDisksLvmthinRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleDisksLvmthinWithHttpInfoAsync(node, createNodesSingleDisksLvmthinRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksLvmthin Create an LVM thinpool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksLvmthinRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksLvmthinWithHttpInfoAsync(string node, CreateNodesSingleDisksLvmthinRequest createNodesSingleDisksLvmthinRequest = default(CreateNodesSingleDisksLvmthinRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksLvmthin");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksLvmthinRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksLvmthin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/lvmthin", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksLvmthin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksZfs Create a ZFS pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksZfsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleDisksZfs(string node, CreateNodesSingleDisksZfsRequest createNodesSingleDisksZfsRequest = default(CreateNodesSingleDisksZfsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleDisksZfsWithHttpInfo(node, createNodesSingleDisksZfsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksZfs Create a ZFS pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksZfsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleDisksZfsWithHttpInfo(string node, CreateNodesSingleDisksZfsRequest createNodesSingleDisksZfsRequest = default(CreateNodesSingleDisksZfsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksZfs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksZfsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksZfs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/disks/zfs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksZfs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleDisksZfs Create a ZFS pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksZfsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleDisksZfsAsync(string node, CreateNodesSingleDisksZfsRequest createNodesSingleDisksZfsRequest = default(CreateNodesSingleDisksZfsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleDisksZfsWithHttpInfoAsync(node, createNodesSingleDisksZfsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleDisksZfs Create a ZFS pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleDisksZfsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleDisksZfsWithHttpInfoAsync(string node, CreateNodesSingleDisksZfsRequest createNodesSingleDisksZfsRequest = default(CreateNodesSingleDisksZfsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleDisksZfs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleDisksZfsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleDisksZfs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/zfs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleDisksZfs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleExecute Execute multiple commands in order, root only.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleExecuteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response CreateNodesSingleExecute(string node, CreateNodesSingleExecuteRequest createNodesSingleExecuteRequest = default(CreateNodesSingleExecuteRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = CreateNodesSingleExecuteWithHttpInfo(node, createNodesSingleExecuteRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleExecute Execute multiple commands in order, root only.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleExecuteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> CreateNodesSingleExecuteWithHttpInfo(string node, CreateNodesSingleExecuteRequest createNodesSingleExecuteRequest = default(CreateNodesSingleExecuteRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleExecute");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleExecuteRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleExecute";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<GetCluster200Response>("/nodes/{node}/execute", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleExecute", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleExecute Execute multiple commands in order, root only.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleExecuteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> CreateNodesSingleExecuteAsync(string node, CreateNodesSingleExecuteRequest createNodesSingleExecuteRequest = default(CreateNodesSingleExecuteRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await CreateNodesSingleExecuteWithHttpInfoAsync(node, createNodesSingleExecuteRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleExecute Execute multiple commands in order, root only.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleExecuteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> CreateNodesSingleExecuteWithHttpInfoAsync(string node, CreateNodesSingleExecuteRequest createNodesSingleExecuteRequest = default(CreateNodesSingleExecuteRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleExecute");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleExecuteRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleExecute";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<GetCluster200Response>("/nodes/{node}/execute", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleExecute", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleHosts Write /etc/hosts.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleHostsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleHosts(string node, CreateNodesSingleHostsRequest createNodesSingleHostsRequest = default(CreateNodesSingleHostsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleHostsWithHttpInfo(node, createNodesSingleHostsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleHosts Write /etc/hosts.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleHostsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleHostsWithHttpInfo(string node, CreateNodesSingleHostsRequest createNodesSingleHostsRequest = default(CreateNodesSingleHostsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleHosts");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleHostsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleHosts";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/hosts", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleHosts", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleHosts Write /etc/hosts.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleHostsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleHostsAsync(string node, CreateNodesSingleHostsRequest createNodesSingleHostsRequest = default(CreateNodesSingleHostsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleHostsWithHttpInfoAsync(node, createNodesSingleHostsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleHosts Write /etc/hosts.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleHostsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleHostsWithHttpInfoAsync(string node, CreateNodesSingleHostsRequest createNodesSingleHostsRequest = default(CreateNodesSingleHostsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleHosts");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleHostsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleHosts";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/hosts", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleHosts", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxc Create or restore a container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleLxcRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxc(string node, CreateNodesSingleLxcRequest createNodesSingleLxcRequest = default(CreateNodesSingleLxcRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcWithHttpInfo(node, createNodesSingleLxcRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxc Create or restore a container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleLxcRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcWithHttpInfo(string node, CreateNodesSingleLxcRequest createNodesSingleLxcRequest = default(CreateNodesSingleLxcRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxc");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxc";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxc", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxc Create or restore a container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleLxcRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcAsync(string node, CreateNodesSingleLxcRequest createNodesSingleLxcRequest = default(CreateNodesSingleLxcRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcWithHttpInfoAsync(node, createNodesSingleLxcRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxc Create or restore a container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleLxcRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcWithHttpInfoAsync(string node, CreateNodesSingleLxcRequest createNodesSingleLxcRequest = default(CreateNodesSingleLxcRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxc");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxc";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxc", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleClone Create a container clone/copy
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleCloneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleClone(string node, int vmid, CreateNodesSingleLxcSingleCloneRequest createNodesSingleLxcSingleCloneRequest = default(CreateNodesSingleLxcSingleCloneRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleCloneWithHttpInfo(node, vmid, createNodesSingleLxcSingleCloneRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleClone Create a container clone/copy
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleCloneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleCloneWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleCloneRequest createNodesSingleLxcSingleCloneRequest = default(CreateNodesSingleLxcSingleCloneRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleClone");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleCloneRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleClone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/clone", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleClone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleClone Create a container clone/copy
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleCloneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleCloneAsync(string node, int vmid, CreateNodesSingleLxcSingleCloneRequest createNodesSingleLxcSingleCloneRequest = default(CreateNodesSingleLxcSingleCloneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleCloneWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleCloneRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleClone Create a container clone/copy
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleCloneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleCloneWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleCloneRequest createNodesSingleLxcSingleCloneRequest = default(CreateNodesSingleLxcSingleCloneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleClone");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleCloneRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleClone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/clone", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleClone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleFirewallAliases(string node, int vmid, CreateNodesSingleLxcSingleFirewallAliasesRequest createNodesSingleLxcSingleFirewallAliasesRequest = default(CreateNodesSingleLxcSingleFirewallAliasesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleFirewallAliasesWithHttpInfo(node, vmid, createNodesSingleLxcSingleFirewallAliasesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallAliasesWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleFirewallAliasesRequest createNodesSingleLxcSingleFirewallAliasesRequest = default(CreateNodesSingleLxcSingleFirewallAliasesRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallAliases");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleFirewallAliasesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallAliasesAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallAliasesRequest createNodesSingleLxcSingleFirewallAliasesRequest = default(CreateNodesSingleLxcSingleFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleFirewallAliasesWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleFirewallAliasesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleFirewallAliasesWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallAliasesRequest createNodesSingleLxcSingleFirewallAliasesRequest = default(CreateNodesSingleLxcSingleFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallAliases");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleFirewallAliasesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpset Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleFirewallIpset(string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetRequest createNodesSingleLxcSingleFirewallIpsetRequest = default(CreateNodesSingleLxcSingleFirewallIpsetRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleFirewallIpsetWithHttpInfo(node, vmid, createNodesSingleLxcSingleFirewallIpsetRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpset Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallIpsetWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetRequest createNodesSingleLxcSingleFirewallIpsetRequest = default(CreateNodesSingleLxcSingleFirewallIpsetRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallIpset");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleFirewallIpsetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleFirewallIpset";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleFirewallIpset", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpset Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallIpsetAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetRequest createNodesSingleLxcSingleFirewallIpsetRequest = default(CreateNodesSingleLxcSingleFirewallIpsetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleFirewallIpsetWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleFirewallIpsetRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpset Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleFirewallIpsetWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetRequest createNodesSingleLxcSingleFirewallIpsetRequest = default(CreateNodesSingleLxcSingleFirewallIpsetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallIpset");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleFirewallIpsetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleFirewallIpset";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleFirewallIpset", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpsetSingle Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleFirewallIpsetSingle(string name, string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetSingleRequest createNodesSingleLxcSingleFirewallIpsetSingleRequest = default(CreateNodesSingleLxcSingleFirewallIpsetSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(name, node, vmid, createNodesSingleLxcSingleFirewallIpsetSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpsetSingle Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(string name, string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetSingleRequest createNodesSingleLxcSingleFirewallIpsetSingleRequest = default(CreateNodesSingleLxcSingleFirewallIpsetSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallIpsetSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallIpsetSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleFirewallIpsetSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleFirewallIpsetSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleFirewallIpsetSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpsetSingle Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallIpsetSingleAsync(string name, string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetSingleRequest createNodesSingleLxcSingleFirewallIpsetSingleRequest = default(CreateNodesSingleLxcSingleFirewallIpsetSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(name, node, vmid, createNodesSingleLxcSingleFirewallIpsetSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallIpsetSingle Add IP or Network to IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallIpsetSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(string name, string node, int vmid, CreateNodesSingleLxcSingleFirewallIpsetSingleRequest createNodesSingleLxcSingleFirewallIpsetSingleRequest = default(CreateNodesSingleLxcSingleFirewallIpsetSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallIpsetSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallIpsetSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleFirewallIpsetSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleFirewallIpsetSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleFirewallIpsetSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallRules Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleFirewallRules(string node, int vmid, CreateNodesSingleLxcSingleFirewallRulesRequest createNodesSingleLxcSingleFirewallRulesRequest = default(CreateNodesSingleLxcSingleFirewallRulesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleFirewallRulesWithHttpInfo(node, vmid, createNodesSingleLxcSingleFirewallRulesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallRules Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallRulesWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleFirewallRulesRequest createNodesSingleLxcSingleFirewallRulesRequest = default(CreateNodesSingleLxcSingleFirewallRulesRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallRules");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleFirewallRulesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallRules Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleFirewallRulesAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallRulesRequest createNodesSingleLxcSingleFirewallRulesRequest = default(CreateNodesSingleLxcSingleFirewallRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleFirewallRulesWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleFirewallRulesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleFirewallRules Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleFirewallRulesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleFirewallRulesWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleFirewallRulesRequest createNodesSingleLxcSingleFirewallRulesRequest = default(CreateNodesSingleLxcSingleFirewallRulesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleFirewallRules");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleFirewallRulesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMigrate Migrate the container to another node. Creates a new migration task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleLxcSingleMigrate(string node, int vmid, CreateNodesSingleLxcSingleMigrateRequest createNodesSingleLxcSingleMigrateRequest = default(CreateNodesSingleLxcSingleMigrateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateNodesSingleLxcSingleMigrateWithHttpInfo(node, vmid, createNodesSingleLxcSingleMigrateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMigrate Migrate the container to another node. Creates a new migration task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleMigrateWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleMigrateRequest createNodesSingleLxcSingleMigrateRequest = default(CreateNodesSingleLxcSingleMigrateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleMigrate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleMigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/migrate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMigrate Migrate the container to another node. Creates a new migration task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleMigrateAsync(string node, int vmid, CreateNodesSingleLxcSingleMigrateRequest createNodesSingleLxcSingleMigrateRequest = default(CreateNodesSingleLxcSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateNodesSingleLxcSingleMigrateWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleMigrateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMigrate Migrate the container to another node. Creates a new migration task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleLxcSingleMigrateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleMigrateRequest createNodesSingleLxcSingleMigrateRequest = default(CreateNodesSingleLxcSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleMigrate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleMigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/migrate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMovevolume Move a rootfs-/mp-volume to a different storage or to a different container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMovevolumeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleMovevolume(string node, int vmid, CreateNodesSingleLxcSingleMovevolumeRequest createNodesSingleLxcSingleMovevolumeRequest = default(CreateNodesSingleLxcSingleMovevolumeRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleMovevolumeWithHttpInfo(node, vmid, createNodesSingleLxcSingleMovevolumeRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMovevolume Move a rootfs-/mp-volume to a different storage or to a different container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMovevolumeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleMovevolumeWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleMovevolumeRequest createNodesSingleLxcSingleMovevolumeRequest = default(CreateNodesSingleLxcSingleMovevolumeRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleMovevolume");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleMovevolumeRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleMovevolume";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/move_volume", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleMovevolume", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMovevolume Move a rootfs-/mp-volume to a different storage or to a different container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMovevolumeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleMovevolumeAsync(string node, int vmid, CreateNodesSingleLxcSingleMovevolumeRequest createNodesSingleLxcSingleMovevolumeRequest = default(CreateNodesSingleLxcSingleMovevolumeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleMovevolumeWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleMovevolumeRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMovevolume Move a rootfs-/mp-volume to a different storage or to a different container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMovevolumeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleMovevolumeWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleMovevolumeRequest createNodesSingleLxcSingleMovevolumeRequest = default(CreateNodesSingleLxcSingleMovevolumeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleMovevolume");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleMovevolumeRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleMovevolume";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/move_volume", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleMovevolume", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMtunnel Migration tunnel endpoint - only for internal use by CT migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleMtunnel(string node, int vmid, CreateNodesSingleLxcSingleMtunnelRequest createNodesSingleLxcSingleMtunnelRequest = default(CreateNodesSingleLxcSingleMtunnelRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleMtunnelWithHttpInfo(node, vmid, createNodesSingleLxcSingleMtunnelRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMtunnel Migration tunnel endpoint - only for internal use by CT migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleMtunnelWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleMtunnelRequest createNodesSingleLxcSingleMtunnelRequest = default(CreateNodesSingleLxcSingleMtunnelRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleMtunnel");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleMtunnelRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleMtunnel";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/mtunnel", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleMtunnel", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMtunnel Migration tunnel endpoint - only for internal use by CT migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleMtunnelAsync(string node, int vmid, CreateNodesSingleLxcSingleMtunnelRequest createNodesSingleLxcSingleMtunnelRequest = default(CreateNodesSingleLxcSingleMtunnelRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleMtunnelWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleMtunnelRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleMtunnel Migration tunnel endpoint - only for internal use by CT migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleMtunnelWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleMtunnelRequest createNodesSingleLxcSingleMtunnelRequest = default(CreateNodesSingleLxcSingleMtunnelRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleMtunnel");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleMtunnelRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleMtunnel";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/mtunnel", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleMtunnel", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleRemotemigrate Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleLxcSingleRemotemigrate(string node, int vmid, CreateNodesSingleLxcSingleRemotemigrateRequest createNodesSingleLxcSingleRemotemigrateRequest = default(CreateNodesSingleLxcSingleRemotemigrateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateNodesSingleLxcSingleRemotemigrateWithHttpInfo(node, vmid, createNodesSingleLxcSingleRemotemigrateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleRemotemigrate Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleRemotemigrateWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleRemotemigrateRequest createNodesSingleLxcSingleRemotemigrateRequest = default(CreateNodesSingleLxcSingleRemotemigrateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleRemotemigrate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleRemotemigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleRemotemigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/remote_migrate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleRemotemigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleRemotemigrate Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleRemotemigrateAsync(string node, int vmid, CreateNodesSingleLxcSingleRemotemigrateRequest createNodesSingleLxcSingleRemotemigrateRequest = default(CreateNodesSingleLxcSingleRemotemigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateNodesSingleLxcSingleRemotemigrateWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleRemotemigrateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleRemotemigrate Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleLxcSingleRemotemigrateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleRemotemigrateRequest createNodesSingleLxcSingleRemotemigrateRequest = default(CreateNodesSingleLxcSingleRemotemigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleRemotemigrate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleRemotemigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleRemotemigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/remote_migrate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleRemotemigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSnapshot Snapshot a container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleLxcSingleSnapshot(string node, int vmid, CreateNodesSingleLxcSingleSnapshotRequest createNodesSingleLxcSingleSnapshotRequest = default(CreateNodesSingleLxcSingleSnapshotRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateNodesSingleLxcSingleSnapshotWithHttpInfo(node, vmid, createNodesSingleLxcSingleSnapshotRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSnapshot Snapshot a container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleSnapshotWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleSnapshotRequest createNodesSingleLxcSingleSnapshotRequest = default(CreateNodesSingleLxcSingleSnapshotRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleSnapshot");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleSnapshotRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/snapshot", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSnapshot Snapshot a container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleSnapshotAsync(string node, int vmid, CreateNodesSingleLxcSingleSnapshotRequest createNodesSingleLxcSingleSnapshotRequest = default(CreateNodesSingleLxcSingleSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateNodesSingleLxcSingleSnapshotWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleSnapshotRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSnapshot Snapshot a container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleLxcSingleSnapshotWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleSnapshotRequest createNodesSingleLxcSingleSnapshotRequest = default(CreateNodesSingleLxcSingleSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleSnapshot");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleSnapshotRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/snapshot", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSnapshotSingleRollback Rollback LXC state to specified snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotSingleRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleLxcSingleSnapshotSingleRollback(string node, string snapname, int vmid, CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest createNodesSingleLxcSingleSnapshotSingleRollbackRequest = default(CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateNodesSingleLxcSingleSnapshotSingleRollbackWithHttpInfo(node, snapname, vmid, createNodesSingleLxcSingleSnapshotSingleRollbackRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSnapshotSingleRollback Rollback LXC state to specified snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotSingleRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleSnapshotSingleRollbackWithHttpInfo(string node, string snapname, int vmid, CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest createNodesSingleLxcSingleSnapshotSingleRollbackRequest = default(CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleSnapshotSingleRollback");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleSnapshotSingleRollback");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleSnapshotSingleRollbackRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleSnapshotSingleRollback";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleSnapshotSingleRollback", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSnapshotSingleRollback Rollback LXC state to specified snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotSingleRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleLxcSingleSnapshotSingleRollbackAsync(string node, string snapname, int vmid, CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest createNodesSingleLxcSingleSnapshotSingleRollbackRequest = default(CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateNodesSingleLxcSingleSnapshotSingleRollbackWithHttpInfoAsync(node, snapname, vmid, createNodesSingleLxcSingleSnapshotSingleRollbackRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSnapshotSingleRollback Rollback LXC state to specified snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSnapshotSingleRollbackRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleLxcSingleSnapshotSingleRollbackWithHttpInfoAsync(string node, string snapname, int vmid, CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest createNodesSingleLxcSingleSnapshotSingleRollbackRequest = default(CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleSnapshotSingleRollback");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleSnapshotSingleRollback");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleSnapshotSingleRollbackRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleSnapshotSingleRollback";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleSnapshotSingleRollback", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSpiceproxy Returns a SPICE configuration to connect to the CT.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public CreateNodesSingleQemuSingleSpiceproxy200Response CreateNodesSingleLxcSingleSpiceproxy(string node, int vmid, CreateNodesSingleLxcSingleSpiceproxyRequest createNodesSingleLxcSingleSpiceproxyRequest = default(CreateNodesSingleLxcSingleSpiceproxyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> localVarResponse = CreateNodesSingleLxcSingleSpiceproxyWithHttpInfo(node, vmid, createNodesSingleLxcSingleSpiceproxyRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSpiceproxy Returns a SPICE configuration to connect to the CT.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleLxcSingleSpiceproxyWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleSpiceproxyRequest createNodesSingleLxcSingleSpiceproxyRequest = default(CreateNodesSingleLxcSingleSpiceproxyRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleSpiceproxy");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleSpiceproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleSpiceproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleSpiceproxy200Response>("/nodes/{node}/lxc/{vmid}/spiceproxy", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleSpiceproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSpiceproxy Returns a SPICE configuration to connect to the CT.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleLxcSingleSpiceproxyAsync(string node, int vmid, CreateNodesSingleLxcSingleSpiceproxyRequest createNodesSingleLxcSingleSpiceproxyRequest = default(CreateNodesSingleLxcSingleSpiceproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> localVarResponse = await CreateNodesSingleLxcSingleSpiceproxyWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleSpiceproxyRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleSpiceproxy Returns a SPICE configuration to connect to the CT.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleSpiceproxy200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response>> CreateNodesSingleLxcSingleSpiceproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleSpiceproxyRequest createNodesSingleLxcSingleSpiceproxyRequest = default(CreateNodesSingleLxcSingleSpiceproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleSpiceproxy");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleSpiceproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleSpiceproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleSpiceproxy200Response>("/nodes/{node}/lxc/{vmid}/spiceproxy", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleSpiceproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusReboot Reboot the container by shutting it down, and starting it again. Applies pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusRebootRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusReboot(string node, int vmid, CreateNodesSingleLxcSingleStatusRebootRequest createNodesSingleLxcSingleStatusRebootRequest = default(CreateNodesSingleLxcSingleStatusRebootRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleStatusRebootWithHttpInfo(node, vmid, createNodesSingleLxcSingleStatusRebootRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusReboot Reboot the container by shutting it down, and starting it again. Applies pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusRebootRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusRebootWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleStatusRebootRequest createNodesSingleLxcSingleStatusRebootRequest = default(CreateNodesSingleLxcSingleStatusRebootRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusReboot");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleStatusRebootRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusReboot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/reboot", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusReboot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusReboot Reboot the container by shutting it down, and starting it again. Applies pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusRebootRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusRebootAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusRebootRequest createNodesSingleLxcSingleStatusRebootRequest = default(CreateNodesSingleLxcSingleStatusRebootRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleStatusRebootWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleStatusRebootRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusReboot Reboot the container by shutting it down, and starting it again. Applies pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusRebootRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusRebootWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusRebootRequest createNodesSingleLxcSingleStatusRebootRequest = default(CreateNodesSingleLxcSingleStatusRebootRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusReboot");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleStatusRebootRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusReboot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/reboot", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusReboot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusResume Resume the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusResume(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleStatusResumeWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusResume Resume the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusResumeWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusResume");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusResume";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/resume", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusResume", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusResume Resume the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusResumeAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleStatusResumeWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusResume Resume the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusResumeWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusResume");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusResume";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/resume", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusResume", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusShutdown Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusShutdown(string node, int vmid, CreateNodesSingleLxcSingleStatusShutdownRequest createNodesSingleLxcSingleStatusShutdownRequest = default(CreateNodesSingleLxcSingleStatusShutdownRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleStatusShutdownWithHttpInfo(node, vmid, createNodesSingleLxcSingleStatusShutdownRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusShutdown Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusShutdownWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleStatusShutdownRequest createNodesSingleLxcSingleStatusShutdownRequest = default(CreateNodesSingleLxcSingleStatusShutdownRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusShutdown");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleStatusShutdownRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusShutdown";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/shutdown", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusShutdown", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusShutdown Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusShutdownAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusShutdownRequest createNodesSingleLxcSingleStatusShutdownRequest = default(CreateNodesSingleLxcSingleStatusShutdownRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleStatusShutdownWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleStatusShutdownRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusShutdown Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusShutdownRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusShutdownWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusShutdownRequest createNodesSingleLxcSingleStatusShutdownRequest = default(CreateNodesSingleLxcSingleStatusShutdownRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusShutdown");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleStatusShutdownRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusShutdown";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/shutdown", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusShutdown", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusStart Start the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusStart(string node, int vmid, CreateNodesSingleLxcSingleStatusStartRequest createNodesSingleLxcSingleStatusStartRequest = default(CreateNodesSingleLxcSingleStatusStartRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleStatusStartWithHttpInfo(node, vmid, createNodesSingleLxcSingleStatusStartRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusStart Start the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusStartWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleStatusStartRequest createNodesSingleLxcSingleStatusStartRequest = default(CreateNodesSingleLxcSingleStatusStartRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusStart");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleStatusStartRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusStart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/start", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusStart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusStart Start the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusStartAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusStartRequest createNodesSingleLxcSingleStatusStartRequest = default(CreateNodesSingleLxcSingleStatusStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleStatusStartWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleStatusStartRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusStart Start the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStartRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusStartWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusStartRequest createNodesSingleLxcSingleStatusStartRequest = default(CreateNodesSingleLxcSingleStatusStartRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusStart");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleStatusStartRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusStart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/start", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusStart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusStop Stop the container. This will abruptly stop all processes running in the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusStop(string node, int vmid, CreateNodesSingleLxcSingleStatusStopRequest createNodesSingleLxcSingleStatusStopRequest = default(CreateNodesSingleLxcSingleStatusStopRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleStatusStopWithHttpInfo(node, vmid, createNodesSingleLxcSingleStatusStopRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusStop Stop the container. This will abruptly stop all processes running in the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusStopWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleStatusStopRequest createNodesSingleLxcSingleStatusStopRequest = default(CreateNodesSingleLxcSingleStatusStopRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusStop");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleStatusStopRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusStop";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/stop", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusStop", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusStop Stop the container. This will abruptly stop all processes running in the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusStopAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusStopRequest createNodesSingleLxcSingleStatusStopRequest = default(CreateNodesSingleLxcSingleStatusStopRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleStatusStopWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleStatusStopRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusStop Stop the container. This will abruptly stop all processes running in the container.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleStatusStopRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusStopWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleStatusStopRequest createNodesSingleLxcSingleStatusStopRequest = default(CreateNodesSingleLxcSingleStatusStopRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusStop");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleStatusStopRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusStop";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/stop", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusStop", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusSuspend Suspend the container. This is experimental.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleStatusSuspend(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleStatusSuspendWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusSuspend Suspend the container. This is experimental.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusSuspendWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusSuspend");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusSuspend";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/suspend", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusSuspend", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusSuspend Suspend the container. This is experimental.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleStatusSuspendAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleStatusSuspendWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleStatusSuspend Suspend the container. This is experimental.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleStatusSuspendWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleStatusSuspend");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleStatusSuspend";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/status/suspend", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleStatusSuspend", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleTemplate Create a Template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleTemplate(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleTemplateWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleTemplate Create a Template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleTemplateWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleTemplate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleTemplate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/template", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleTemplate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleTemplate Create a Template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleTemplateAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleTemplateWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleTemplate Create a Template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleTemplateWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleTemplate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleTemplate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/template", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleTemplate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleTermproxy Creates a TCP proxy connection.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleTermproxy(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleTermproxyWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleTermproxy Creates a TCP proxy connection.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleTermproxyWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleTermproxy");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleTermproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/termproxy", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleTermproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleTermproxy Creates a TCP proxy connection.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleTermproxyAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleTermproxyWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleTermproxy Creates a TCP proxy connection.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleTermproxyWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleTermproxy");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleTermproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/termproxy", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleTermproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleVncproxy Creates a TCP VNC proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleLxcSingleVncproxy(string node, int vmid, CreateNodesSingleLxcSingleVncproxyRequest createNodesSingleLxcSingleVncproxyRequest = default(CreateNodesSingleLxcSingleVncproxyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleLxcSingleVncproxyWithHttpInfo(node, vmid, createNodesSingleLxcSingleVncproxyRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleVncproxy Creates a TCP VNC proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleLxcSingleVncproxyWithHttpInfo(string node, int vmid, CreateNodesSingleLxcSingleVncproxyRequest createNodesSingleLxcSingleVncproxyRequest = default(CreateNodesSingleLxcSingleVncproxyRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleVncproxy");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleVncproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleVncproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/vncproxy", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleVncproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleLxcSingleVncproxy Creates a TCP VNC proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleLxcSingleVncproxyAsync(string node, int vmid, CreateNodesSingleLxcSingleVncproxyRequest createNodesSingleLxcSingleVncproxyRequest = default(CreateNodesSingleLxcSingleVncproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleLxcSingleVncproxyWithHttpInfoAsync(node, vmid, createNodesSingleLxcSingleVncproxyRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleLxcSingleVncproxy Creates a TCP VNC proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleLxcSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleLxcSingleVncproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleLxcSingleVncproxyRequest createNodesSingleLxcSingleVncproxyRequest = default(CreateNodesSingleLxcSingleVncproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleLxcSingleVncproxy");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleLxcSingleVncproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleLxcSingleVncproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/vncproxy", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleLxcSingleVncproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleMigrateall Migrate all VMs and Containers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleMigrateallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleMigrateall(string node, CreateNodesSingleMigrateallRequest createNodesSingleMigrateallRequest = default(CreateNodesSingleMigrateallRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleMigrateallWithHttpInfo(node, createNodesSingleMigrateallRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleMigrateall Migrate all VMs and Containers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleMigrateallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleMigrateallWithHttpInfo(string node, CreateNodesSingleMigrateallRequest createNodesSingleMigrateallRequest = default(CreateNodesSingleMigrateallRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleMigrateall");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleMigrateallRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleMigrateall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/migrateall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleMigrateall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleMigrateall Migrate all VMs and Containers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleMigrateallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleMigrateallAsync(string node, CreateNodesSingleMigrateallRequest createNodesSingleMigrateallRequest = default(CreateNodesSingleMigrateallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleMigrateallWithHttpInfoAsync(node, createNodesSingleMigrateallRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleMigrateall Migrate all VMs and Containers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleMigrateallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleMigrateallWithHttpInfoAsync(string node, CreateNodesSingleMigrateallRequest createNodesSingleMigrateallRequest = default(CreateNodesSingleMigrateallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleMigrateall");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleMigrateallRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleMigrateall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/migrateall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleMigrateall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleNetwork Create network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleNetwork(string node, CreateNodesSingleNetworkRequest createNodesSingleNetworkRequest = default(CreateNodesSingleNetworkRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleNetworkWithHttpInfo(node, createNodesSingleNetworkRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleNetwork Create network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleNetworkWithHttpInfo(string node, CreateNodesSingleNetworkRequest createNodesSingleNetworkRequest = default(CreateNodesSingleNetworkRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleNetwork");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleNetworkRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleNetwork";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/network", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleNetwork", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleNetwork Create network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleNetworkAsync(string node, CreateNodesSingleNetworkRequest createNodesSingleNetworkRequest = default(CreateNodesSingleNetworkRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleNetworkWithHttpInfoAsync(node, createNodesSingleNetworkRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleNetwork Create network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleNetworkWithHttpInfoAsync(string node, CreateNodesSingleNetworkRequest createNodesSingleNetworkRequest = default(CreateNodesSingleNetworkRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleNetwork");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleNetworkRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleNetwork";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/network", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleNetwork", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgent Execute QEMU Guest Agent commands.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgent(string node, int vmid, CreateNodesSingleQemuSingleAgentRequest createNodesSingleQemuSingleAgentRequest = default(CreateNodesSingleQemuSingleAgentRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentWithHttpInfo(node, vmid, createNodesSingleQemuSingleAgentRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgent Execute QEMU Guest Agent commands.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleAgentRequest createNodesSingleQemuSingleAgentRequest = default(CreateNodesSingleQemuSingleAgentRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgent");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleAgentRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgent Execute QEMU Guest Agent commands.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentRequest createNodesSingleQemuSingleAgentRequest = default(CreateNodesSingleQemuSingleAgentRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleAgentRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgent Execute QEMU Guest Agent commands.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentRequest createNodesSingleQemuSingleAgentRequest = default(CreateNodesSingleQemuSingleAgentRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgent");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleAgentRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentExec Executes the given command in the vm via the guest-agent and returns an object with the pid.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentExecRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgentExec200Response</returns>
        public CreateNodesSingleQemuSingleAgentExec200Response CreateNodesSingleQemuSingleAgentExec(string node, int vmid, CreateNodesSingleQemuSingleAgentExecRequest createNodesSingleQemuSingleAgentExecRequest = default(CreateNodesSingleQemuSingleAgentExecRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgentExec200Response> localVarResponse = CreateNodesSingleQemuSingleAgentExecWithHttpInfo(node, vmid, createNodesSingleQemuSingleAgentExecRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentExec Executes the given command in the vm via the guest-agent and returns an object with the pid.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentExecRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgentExec200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgentExec200Response> CreateNodesSingleQemuSingleAgentExecWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleAgentExecRequest createNodesSingleQemuSingleAgentExecRequest = default(CreateNodesSingleQemuSingleAgentExecRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentExec");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleAgentExecRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentExec";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgentExec200Response>("/nodes/{node}/qemu/{vmid}/agent/exec", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentExec", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentExec Executes the given command in the vm via the guest-agent and returns an object with the pid.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentExecRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgentExec200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgentExec200Response> CreateNodesSingleQemuSingleAgentExecAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentExecRequest createNodesSingleQemuSingleAgentExecRequest = default(CreateNodesSingleQemuSingleAgentExecRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgentExec200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentExecWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleAgentExecRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentExec Executes the given command in the vm via the guest-agent and returns an object with the pid.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentExecRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgentExec200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgentExec200Response>> CreateNodesSingleQemuSingleAgentExecWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentExecRequest createNodesSingleQemuSingleAgentExecRequest = default(CreateNodesSingleQemuSingleAgentExecRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentExec");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleAgentExecRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentExec";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgentExec200Response>("/nodes/{node}/qemu/{vmid}/agent/exec", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentExec", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFilewrite Writes the given file via guest agent.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentFilewriteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleQemuSingleAgentFilewrite(string node, int vmid, CreateNodesSingleQemuSingleAgentFilewriteRequest createNodesSingleQemuSingleAgentFilewriteRequest = default(CreateNodesSingleQemuSingleAgentFilewriteRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleQemuSingleAgentFilewriteWithHttpInfo(node, vmid, createNodesSingleQemuSingleAgentFilewriteRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFilewrite Writes the given file via guest agent.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentFilewriteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleAgentFilewriteWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleAgentFilewriteRequest createNodesSingleQemuSingleAgentFilewriteRequest = default(CreateNodesSingleQemuSingleAgentFilewriteRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFilewrite");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleAgentFilewriteRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFilewrite";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/agent/file-write", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFilewrite", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFilewrite Writes the given file via guest agent.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentFilewriteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleAgentFilewriteAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentFilewriteRequest createNodesSingleQemuSingleAgentFilewriteRequest = default(CreateNodesSingleQemuSingleAgentFilewriteRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentFilewriteWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleAgentFilewriteRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFilewrite Writes the given file via guest agent.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentFilewriteRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleAgentFilewriteWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentFilewriteRequest createNodesSingleQemuSingleAgentFilewriteRequest = default(CreateNodesSingleQemuSingleAgentFilewriteRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFilewrite");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleAgentFilewriteRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFilewrite";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/agent/file-write", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFilewrite", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezefreeze Execute fsfreeze-freeze.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentFsfreezefreeze(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentFsfreezefreezeWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezefreeze Execute fsfreeze-freeze.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezefreezeWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFsfreezefreeze");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFsfreezefreeze";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFsfreezefreeze", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezefreeze Execute fsfreeze-freeze.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezefreezeAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentFsfreezefreezeWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezefreeze Execute fsfreeze-freeze.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentFsfreezefreezeWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFsfreezefreeze");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFsfreezefreeze";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFsfreezefreeze", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezestatus Execute fsfreeze-status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentFsfreezestatus(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentFsfreezestatusWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezestatus Execute fsfreeze-status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezestatusWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFsfreezestatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFsfreezestatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFsfreezestatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezestatus Execute fsfreeze-status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezestatusAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentFsfreezestatusWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezestatus Execute fsfreeze-status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentFsfreezestatusWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFsfreezestatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFsfreezestatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFsfreezestatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezethaw Execute fsfreeze-thaw.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentFsfreezethaw(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentFsfreezethawWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezethaw Execute fsfreeze-thaw.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezethawWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFsfreezethaw");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFsfreezethaw";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFsfreezethaw", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezethaw Execute fsfreeze-thaw.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFsfreezethawAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentFsfreezethawWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFsfreezethaw Execute fsfreeze-thaw.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentFsfreezethawWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFsfreezethaw");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFsfreezethaw";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFsfreezethaw", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFstrim Execute fstrim.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentFstrim(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentFstrimWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFstrim Execute fstrim.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFstrimWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFstrim");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFstrim";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/fstrim", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFstrim", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFstrim Execute fstrim.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentFstrimAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentFstrimWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentFstrim Execute fstrim.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentFstrimWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentFstrim");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentFstrim";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/fstrim", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentFstrim", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentPing Execute ping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentPing(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentPingWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentPing Execute ping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentPingWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentPing");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentPing";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/ping", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentPing", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentPing Execute ping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentPingAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentPingWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentPing Execute ping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentPingWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentPing");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentPing";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/ping", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentPing", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSetuserpassword Sets the password for the given user to the given password
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentSetuserpasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentSetuserpassword(string node, int vmid, CreateNodesSingleQemuSingleAgentSetuserpasswordRequest createNodesSingleQemuSingleAgentSetuserpasswordRequest = default(CreateNodesSingleQemuSingleAgentSetuserpasswordRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentSetuserpasswordWithHttpInfo(node, vmid, createNodesSingleQemuSingleAgentSetuserpasswordRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSetuserpassword Sets the password for the given user to the given password
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentSetuserpasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSetuserpasswordWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleAgentSetuserpasswordRequest createNodesSingleQemuSingleAgentSetuserpasswordRequest = default(CreateNodesSingleQemuSingleAgentSetuserpasswordRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentSetuserpassword");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleAgentSetuserpasswordRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentSetuserpassword";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/set-user-password", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentSetuserpassword", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSetuserpassword Sets the password for the given user to the given password
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentSetuserpasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSetuserpasswordAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentSetuserpasswordRequest createNodesSingleQemuSingleAgentSetuserpasswordRequest = default(CreateNodesSingleQemuSingleAgentSetuserpasswordRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentSetuserpasswordWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleAgentSetuserpasswordRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSetuserpassword Sets the password for the given user to the given password
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleAgentSetuserpasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentSetuserpasswordWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleAgentSetuserpasswordRequest createNodesSingleQemuSingleAgentSetuserpasswordRequest = default(CreateNodesSingleQemuSingleAgentSetuserpasswordRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentSetuserpassword");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleAgentSetuserpasswordRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentSetuserpassword";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/set-user-password", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentSetuserpassword", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentShutdown Execute shutdown.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentShutdown(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentShutdownWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentShutdown Execute shutdown.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentShutdownWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentShutdown");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentShutdown";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/shutdown", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentShutdown", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentShutdown Execute shutdown.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentShutdownAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentShutdownWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentShutdown Execute shutdown.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentShutdownWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentShutdown");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentShutdown";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/shutdown", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentShutdown", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspenddisk Execute suspend-disk.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentSuspenddisk(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentSuspenddiskWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspenddisk Execute suspend-disk.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspenddiskWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentSuspenddisk");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentSuspenddisk";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/suspend-disk", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentSuspenddisk", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspenddisk Execute suspend-disk.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspenddiskAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentSuspenddiskWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspenddisk Execute suspend-disk.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentSuspenddiskWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentSuspenddisk");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentSuspenddisk";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/suspend-disk", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentSuspenddisk", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendhybrid Execute suspend-hybrid.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentSuspendhybrid(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentSuspendhybridWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendhybrid Execute suspend-hybrid.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspendhybridWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentSuspendhybrid");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentSuspendhybrid";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentSuspendhybrid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendhybrid Execute suspend-hybrid.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspendhybridAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentSuspendhybridWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendhybrid Execute suspend-hybrid.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentSuspendhybridWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentSuspendhybrid");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentSuspendhybrid";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentSuspendhybrid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendram Execute suspend-ram.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response CreateNodesSingleQemuSingleAgentSuspendram(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = CreateNodesSingleQemuSingleAgentSuspendramWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendram Execute suspend-ram.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspendramWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentSuspendram");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentSuspendram";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/suspend-ram", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentSuspendram", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendram Execute suspend-ram.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> CreateNodesSingleQemuSingleAgentSuspendramAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await CreateNodesSingleQemuSingleAgentSuspendramWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleAgentSuspendram Execute suspend-ram.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> CreateNodesSingleQemuSingleAgentSuspendramWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleAgentSuspendram");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleAgentSuspendram";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/suspend-ram", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleAgentSuspendram", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleDbusvmstate Control the dbus-vmstate helper for a given running VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleDbusvmstateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleQemuSingleDbusvmstate(string node, int vmid, CreateNodesSingleQemuSingleDbusvmstateRequest createNodesSingleQemuSingleDbusvmstateRequest = default(CreateNodesSingleQemuSingleDbusvmstateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleQemuSingleDbusvmstateWithHttpInfo(node, vmid, createNodesSingleQemuSingleDbusvmstateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleDbusvmstate Control the dbus-vmstate helper for a given running VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleDbusvmstateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleDbusvmstateWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleDbusvmstateRequest createNodesSingleQemuSingleDbusvmstateRequest = default(CreateNodesSingleQemuSingleDbusvmstateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleDbusvmstate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleDbusvmstateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleDbusvmstate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/dbus-vmstate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleDbusvmstate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleDbusvmstate Control the dbus-vmstate helper for a given running VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleDbusvmstateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleDbusvmstateAsync(string node, int vmid, CreateNodesSingleQemuSingleDbusvmstateRequest createNodesSingleQemuSingleDbusvmstateRequest = default(CreateNodesSingleQemuSingleDbusvmstateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleQemuSingleDbusvmstateWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleDbusvmstateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleDbusvmstate Control the dbus-vmstate helper for a given running VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleDbusvmstateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleDbusvmstateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleDbusvmstateRequest createNodesSingleQemuSingleDbusvmstateRequest = default(CreateNodesSingleQemuSingleDbusvmstateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleDbusvmstate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleDbusvmstateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleDbusvmstate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/dbus-vmstate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleDbusvmstate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleQemuSingleFirewallAliases(string node, int vmid, CreateNodesSingleQemuSingleFirewallAliasesRequest createNodesSingleQemuSingleFirewallAliasesRequest = default(CreateNodesSingleQemuSingleFirewallAliasesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleQemuSingleFirewallAliasesWithHttpInfo(node, vmid, createNodesSingleQemuSingleFirewallAliasesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleFirewallAliasesWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleFirewallAliasesRequest createNodesSingleQemuSingleFirewallAliasesRequest = default(CreateNodesSingleQemuSingleFirewallAliasesRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleFirewallAliases");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleFirewallAliasesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleFirewallAliasesAsync(string node, int vmid, CreateNodesSingleQemuSingleFirewallAliasesRequest createNodesSingleQemuSingleFirewallAliasesRequest = default(CreateNodesSingleQemuSingleFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleQemuSingleFirewallAliasesWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleFirewallAliasesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleFirewallAliases Create IP or Network Alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleFirewallAliasesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleFirewallAliasesWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleFirewallAliasesRequest createNodesSingleQemuSingleFirewallAliasesRequest = default(CreateNodesSingleQemuSingleFirewallAliasesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleFirewallAliases");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleFirewallAliasesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMigrate Migrate virtual machine. Creates a new migration task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleQemuSingleMigrate(string node, int vmid, CreateNodesSingleQemuSingleMigrateRequest createNodesSingleQemuSingleMigrateRequest = default(CreateNodesSingleQemuSingleMigrateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateNodesSingleQemuSingleMigrateWithHttpInfo(node, vmid, createNodesSingleQemuSingleMigrateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMigrate Migrate virtual machine. Creates a new migration task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleMigrateWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleMigrateRequest createNodesSingleQemuSingleMigrateRequest = default(CreateNodesSingleQemuSingleMigrateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleMigrate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleMigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/migrate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMigrate Migrate virtual machine. Creates a new migration task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleMigrateAsync(string node, int vmid, CreateNodesSingleQemuSingleMigrateRequest createNodesSingleQemuSingleMigrateRequest = default(CreateNodesSingleQemuSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateNodesSingleQemuSingleMigrateWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleMigrateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMigrate Migrate virtual machine. Creates a new migration task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleQemuSingleMigrateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleMigrateRequest createNodesSingleQemuSingleMigrateRequest = default(CreateNodesSingleQemuSingleMigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleMigrate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleMigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/migrate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMonitor Execute QEMU monitor commands.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMonitorRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleQemuSingleMonitor(string node, int vmid, CreateNodesSingleQemuSingleMonitorRequest createNodesSingleQemuSingleMonitorRequest = default(CreateNodesSingleQemuSingleMonitorRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleQemuSingleMonitorWithHttpInfo(node, vmid, createNodesSingleQemuSingleMonitorRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMonitor Execute QEMU monitor commands.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMonitorRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleMonitorWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleMonitorRequest createNodesSingleQemuSingleMonitorRequest = default(CreateNodesSingleQemuSingleMonitorRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleMonitor");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleMonitorRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleMonitor";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/monitor", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleMonitor", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMonitor Execute QEMU monitor commands.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMonitorRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleMonitorAsync(string node, int vmid, CreateNodesSingleQemuSingleMonitorRequest createNodesSingleQemuSingleMonitorRequest = default(CreateNodesSingleQemuSingleMonitorRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleQemuSingleMonitorWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleMonitorRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMonitor Execute QEMU monitor commands.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMonitorRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleMonitorWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleMonitorRequest createNodesSingleQemuSingleMonitorRequest = default(CreateNodesSingleQemuSingleMonitorRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleMonitor");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleMonitorRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleMonitor";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/monitor", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleMonitor", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMovedisk Move volume to different storage or to a different VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMovediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleQemuSingleMovedisk(string node, int vmid, CreateNodesSingleQemuSingleMovediskRequest createNodesSingleQemuSingleMovediskRequest = default(CreateNodesSingleQemuSingleMovediskRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateNodesSingleQemuSingleMovediskWithHttpInfo(node, vmid, createNodesSingleQemuSingleMovediskRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMovedisk Move volume to different storage or to a different VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMovediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleMovediskWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleMovediskRequest createNodesSingleQemuSingleMovediskRequest = default(CreateNodesSingleQemuSingleMovediskRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleMovedisk");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleMovediskRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleMovedisk";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/move_disk", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleMovedisk", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMovedisk Move volume to different storage or to a different VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMovediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleMovediskAsync(string node, int vmid, CreateNodesSingleQemuSingleMovediskRequest createNodesSingleQemuSingleMovediskRequest = default(CreateNodesSingleQemuSingleMovediskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateNodesSingleQemuSingleMovediskWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleMovediskRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMovedisk Move volume to different storage or to a different VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMovediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleQemuSingleMovediskWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleMovediskRequest createNodesSingleQemuSingleMovediskRequest = default(CreateNodesSingleQemuSingleMovediskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleMovedisk");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleMovediskRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleMovedisk";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/move_disk", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleMovedisk", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMtunnel Migration tunnel endpoint - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleQemuSingleMtunnel(string node, int vmid, CreateNodesSingleQemuSingleMtunnelRequest createNodesSingleQemuSingleMtunnelRequest = default(CreateNodesSingleQemuSingleMtunnelRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleQemuSingleMtunnelWithHttpInfo(node, vmid, createNodesSingleQemuSingleMtunnelRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMtunnel Migration tunnel endpoint - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleMtunnelWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleMtunnelRequest createNodesSingleQemuSingleMtunnelRequest = default(CreateNodesSingleQemuSingleMtunnelRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleMtunnel");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleMtunnelRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleMtunnel";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/mtunnel", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleMtunnel", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMtunnel Migration tunnel endpoint - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleMtunnelAsync(string node, int vmid, CreateNodesSingleQemuSingleMtunnelRequest createNodesSingleQemuSingleMtunnelRequest = default(CreateNodesSingleQemuSingleMtunnelRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleQemuSingleMtunnelWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleMtunnelRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleMtunnel Migration tunnel endpoint - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleMtunnelRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleMtunnelWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleMtunnelRequest createNodesSingleQemuSingleMtunnelRequest = default(CreateNodesSingleQemuSingleMtunnelRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleMtunnel");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleMtunnelRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleMtunnel";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/mtunnel", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleMtunnel", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleRemotemigrate Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleQemuSingleRemotemigrate(string node, int vmid, CreateNodesSingleQemuSingleRemotemigrateRequest createNodesSingleQemuSingleRemotemigrateRequest = default(CreateNodesSingleQemuSingleRemotemigrateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateNodesSingleQemuSingleRemotemigrateWithHttpInfo(node, vmid, createNodesSingleQemuSingleRemotemigrateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleRemotemigrate Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleRemotemigrateWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleRemotemigrateRequest createNodesSingleQemuSingleRemotemigrateRequest = default(CreateNodesSingleQemuSingleRemotemigrateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleRemotemigrate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleRemotemigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleRemotemigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/remote_migrate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleRemotemigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleRemotemigrate Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleRemotemigrateAsync(string node, int vmid, CreateNodesSingleQemuSingleRemotemigrateRequest createNodesSingleQemuSingleRemotemigrateRequest = default(CreateNodesSingleQemuSingleRemotemigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateNodesSingleQemuSingleRemotemigrateWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleRemotemigrateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleRemotemigrate Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleRemotemigrateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleQemuSingleRemotemigrateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleRemotemigrateRequest createNodesSingleQemuSingleRemotemigrateRequest = default(CreateNodesSingleQemuSingleRemotemigrateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleRemotemigrate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleRemotemigrateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleRemotemigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/remote_migrate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleRemotemigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleSpiceproxy Returns a SPICE configuration to connect to the VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public CreateNodesSingleQemuSingleSpiceproxy200Response CreateNodesSingleQemuSingleSpiceproxy(string node, int vmid, CreateNodesSingleQemuSingleSpiceproxyRequest createNodesSingleQemuSingleSpiceproxyRequest = default(CreateNodesSingleQemuSingleSpiceproxyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> localVarResponse = CreateNodesSingleQemuSingleSpiceproxyWithHttpInfo(node, vmid, createNodesSingleQemuSingleSpiceproxyRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleSpiceproxy Returns a SPICE configuration to connect to the VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleQemuSingleSpiceproxyWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleSpiceproxyRequest createNodesSingleQemuSingleSpiceproxyRequest = default(CreateNodesSingleQemuSingleSpiceproxyRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleSpiceproxy");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleSpiceproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleSpiceproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleSpiceproxy200Response>("/nodes/{node}/qemu/{vmid}/spiceproxy", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleSpiceproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleSpiceproxy Returns a SPICE configuration to connect to the VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleQemuSingleSpiceproxyAsync(string node, int vmid, CreateNodesSingleQemuSingleSpiceproxyRequest createNodesSingleQemuSingleSpiceproxyRequest = default(CreateNodesSingleQemuSingleSpiceproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> localVarResponse = await CreateNodesSingleQemuSingleSpiceproxyWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleSpiceproxyRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleSpiceproxy Returns a SPICE configuration to connect to the VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleSpiceproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleSpiceproxy200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response>> CreateNodesSingleQemuSingleSpiceproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleSpiceproxyRequest createNodesSingleQemuSingleSpiceproxyRequest = default(CreateNodesSingleQemuSingleSpiceproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleSpiceproxy");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleSpiceproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleSpiceproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleSpiceproxy200Response>("/nodes/{node}/qemu/{vmid}/spiceproxy", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleSpiceproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleTemplate Create a Template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTemplateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateNodesSingleQemuSingleTemplate(string node, int vmid, CreateNodesSingleQemuSingleTemplateRequest createNodesSingleQemuSingleTemplateRequest = default(CreateNodesSingleQemuSingleTemplateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateNodesSingleQemuSingleTemplateWithHttpInfo(node, vmid, createNodesSingleQemuSingleTemplateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleTemplate Create a Template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTemplateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleTemplateWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleTemplateRequest createNodesSingleQemuSingleTemplateRequest = default(CreateNodesSingleQemuSingleTemplateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleTemplate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleTemplateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleTemplate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/template", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleTemplate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleTemplate Create a Template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTemplateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateNodesSingleQemuSingleTemplateAsync(string node, int vmid, CreateNodesSingleQemuSingleTemplateRequest createNodesSingleQemuSingleTemplateRequest = default(CreateNodesSingleQemuSingleTemplateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateNodesSingleQemuSingleTemplateWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleTemplateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleTemplate Create a Template.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTemplateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateNodesSingleQemuSingleTemplateWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleTemplateRequest createNodesSingleQemuSingleTemplateRequest = default(CreateNodesSingleQemuSingleTemplateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleTemplate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleTemplateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleTemplate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/template", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleTemplate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleTermproxy Creates a TCP proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleQemuSingleTermproxy(string node, int vmid, CreateNodesSingleQemuSingleTermproxyRequest createNodesSingleQemuSingleTermproxyRequest = default(CreateNodesSingleQemuSingleTermproxyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleQemuSingleTermproxyWithHttpInfo(node, vmid, createNodesSingleQemuSingleTermproxyRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleTermproxy Creates a TCP proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleTermproxyWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleTermproxyRequest createNodesSingleQemuSingleTermproxyRequest = default(CreateNodesSingleQemuSingleTermproxyRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleTermproxy");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleTermproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleTermproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/termproxy", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleTermproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleTermproxy Creates a TCP proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleTermproxyAsync(string node, int vmid, CreateNodesSingleQemuSingleTermproxyRequest createNodesSingleQemuSingleTermproxyRequest = default(CreateNodesSingleQemuSingleTermproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleQemuSingleTermproxyWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleTermproxyRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleTermproxy Creates a TCP proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleTermproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleTermproxyRequest createNodesSingleQemuSingleTermproxyRequest = default(CreateNodesSingleQemuSingleTermproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleTermproxy");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleTermproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleTermproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/termproxy", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleTermproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleVncproxy Creates a TCP VNC proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleQemuSingleVncproxy(string node, int vmid, CreateNodesSingleQemuSingleVncproxyRequest createNodesSingleQemuSingleVncproxyRequest = default(CreateNodesSingleQemuSingleVncproxyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleQemuSingleVncproxyWithHttpInfo(node, vmid, createNodesSingleQemuSingleVncproxyRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleVncproxy Creates a TCP VNC proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleQemuSingleVncproxyWithHttpInfo(string node, int vmid, CreateNodesSingleQemuSingleVncproxyRequest createNodesSingleQemuSingleVncproxyRequest = default(CreateNodesSingleQemuSingleVncproxyRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleVncproxy");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleVncproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleVncproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/vncproxy", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleVncproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleQemuSingleVncproxy Creates a TCP VNC proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleQemuSingleVncproxyAsync(string node, int vmid, CreateNodesSingleQemuSingleVncproxyRequest createNodesSingleQemuSingleVncproxyRequest = default(CreateNodesSingleQemuSingleVncproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleQemuSingleVncproxyWithHttpInfoAsync(node, vmid, createNodesSingleQemuSingleVncproxyRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleQemuSingleVncproxy Creates a TCP VNC proxy connections.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createNodesSingleQemuSingleVncproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleQemuSingleVncproxyWithHttpInfoAsync(string node, int vmid, CreateNodesSingleQemuSingleVncproxyRequest createNodesSingleQemuSingleVncproxyRequest = default(CreateNodesSingleQemuSingleVncproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleQemuSingleVncproxy");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createNodesSingleQemuSingleVncproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleQemuSingleVncproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/vncproxy", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleQemuSingleVncproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleReplicationSingleSchedulenow Schedule replication job to start as soon as possible.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleReplicationSingleSchedulenow(string id, string node, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleReplicationSingleSchedulenowWithHttpInfo(id, node, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleReplicationSingleSchedulenow Schedule replication job to start as soon as possible.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleReplicationSingleSchedulenowWithHttpInfo(string id, string node, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->CreateNodesSingleReplicationSingleSchedulenow");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleReplicationSingleSchedulenow");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleReplicationSingleSchedulenow";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/replication/{id}/schedule_now", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleReplicationSingleSchedulenow", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleReplicationSingleSchedulenow Schedule replication job to start as soon as possible.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleReplicationSingleSchedulenowAsync(string id, string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleReplicationSingleSchedulenowWithHttpInfoAsync(id, node, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleReplicationSingleSchedulenow Schedule replication job to start as soon as possible.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleReplicationSingleSchedulenowWithHttpInfoAsync(string id, string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->CreateNodesSingleReplicationSingleSchedulenow");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleReplicationSingleSchedulenow");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleReplicationSingleSchedulenow";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/replication/{id}/schedule_now", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleReplicationSingleSchedulenow", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleServicesSingleReload Reload service. Falls back to restart if service cannot be reloaded.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleServicesSingleReload(string node, string service, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleServicesSingleReloadWithHttpInfo(node, service, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleServicesSingleReload Reload service. Falls back to restart if service cannot be reloaded.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleServicesSingleReloadWithHttpInfo(string node, string service, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleReload");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleReload");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleServicesSingleReload";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/services/{service}/reload", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleServicesSingleReload", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleServicesSingleReload Reload service. Falls back to restart if service cannot be reloaded.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleServicesSingleReloadAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleServicesSingleReloadWithHttpInfoAsync(node, service, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleServicesSingleReload Reload service. Falls back to restart if service cannot be reloaded.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleServicesSingleReloadWithHttpInfoAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleReload");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleReload");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleServicesSingleReload";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/services/{service}/reload", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleServicesSingleReload", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleServicesSingleRestart Hard restart service. Use reload if you want to reduce interruptions.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleServicesSingleRestart(string node, string service, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleServicesSingleRestartWithHttpInfo(node, service, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleServicesSingleRestart Hard restart service. Use reload if you want to reduce interruptions.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleServicesSingleRestartWithHttpInfo(string node, string service, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleRestart");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleRestart");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleServicesSingleRestart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/services/{service}/restart", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleServicesSingleRestart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleServicesSingleRestart Hard restart service. Use reload if you want to reduce interruptions.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleServicesSingleRestartAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleServicesSingleRestartWithHttpInfoAsync(node, service, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleServicesSingleRestart Hard restart service. Use reload if you want to reduce interruptions.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleServicesSingleRestartWithHttpInfoAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleRestart");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleRestart");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleServicesSingleRestart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/services/{service}/restart", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleServicesSingleRestart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleServicesSingleStart Start service.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleServicesSingleStart(string node, string service, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleServicesSingleStartWithHttpInfo(node, service, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleServicesSingleStart Start service.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleServicesSingleStartWithHttpInfo(string node, string service, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleStart");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleStart");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleServicesSingleStart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/services/{service}/start", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleServicesSingleStart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleServicesSingleStart Start service.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleServicesSingleStartAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleServicesSingleStartWithHttpInfoAsync(node, service, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleServicesSingleStart Start service.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleServicesSingleStartWithHttpInfoAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleStart");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleStart");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleServicesSingleStart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/services/{service}/start", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleServicesSingleStart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleServicesSingleStop Stop service.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleServicesSingleStop(string node, string service, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleServicesSingleStopWithHttpInfo(node, service, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleServicesSingleStop Stop service.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleServicesSingleStopWithHttpInfo(string node, string service, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleStop");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleStop");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleServicesSingleStop";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/services/{service}/stop", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleServicesSingleStop", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleServicesSingleStop Stop service.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleServicesSingleStopAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleServicesSingleStopWithHttpInfoAsync(node, service, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleServicesSingleStop Stop service.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleServicesSingleStopWithHttpInfoAsync(string node, string service, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleStop");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->CreateNodesSingleServicesSingleStop");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleServicesSingleStop";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/services/{service}/stop", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleServicesSingleStop", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleSpiceshell Creates a SPICE shell.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSpiceshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public CreateNodesSingleQemuSingleSpiceproxy200Response CreateNodesSingleSpiceshell(string node, CreateNodesSingleSpiceshellRequest createNodesSingleSpiceshellRequest = default(CreateNodesSingleSpiceshellRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> localVarResponse = CreateNodesSingleSpiceshellWithHttpInfo(node, createNodesSingleSpiceshellRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleSpiceshell Creates a SPICE shell.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSpiceshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleSpiceshellWithHttpInfo(string node, CreateNodesSingleSpiceshellRequest createNodesSingleSpiceshellRequest = default(CreateNodesSingleSpiceshellRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleSpiceshell");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleSpiceshellRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleSpiceshell";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleSpiceproxy200Response>("/nodes/{node}/spiceshell", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleSpiceshell", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleSpiceshell Creates a SPICE shell.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSpiceshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleSpiceproxy200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleSpiceproxy200Response> CreateNodesSingleSpiceshellAsync(string node, CreateNodesSingleSpiceshellRequest createNodesSingleSpiceshellRequest = default(CreateNodesSingleSpiceshellRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response> localVarResponse = await CreateNodesSingleSpiceshellWithHttpInfoAsync(node, createNodesSingleSpiceshellRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleSpiceshell Creates a SPICE shell.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSpiceshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleSpiceproxy200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleSpiceproxy200Response>> CreateNodesSingleSpiceshellWithHttpInfoAsync(string node, CreateNodesSingleSpiceshellRequest createNodesSingleSpiceshellRequest = default(CreateNodesSingleSpiceshellRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleSpiceshell");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleSpiceshellRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleSpiceshell";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleSpiceproxy200Response>("/nodes/{node}/spiceshell", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleSpiceshell", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStartall Start all VMs and containers located on this node (by default only those with onboot&#x3D;1).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStartallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleStartall(string node, CreateNodesSingleStartallRequest createNodesSingleStartallRequest = default(CreateNodesSingleStartallRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleStartallWithHttpInfo(node, createNodesSingleStartallRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStartall Start all VMs and containers located on this node (by default only those with onboot&#x3D;1).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStartallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStartallWithHttpInfo(string node, CreateNodesSingleStartallRequest createNodesSingleStartallRequest = default(CreateNodesSingleStartallRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStartall");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStartallRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStartall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/startall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStartall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStartall Start all VMs and containers located on this node (by default only those with onboot&#x3D;1).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStartallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStartallAsync(string node, CreateNodesSingleStartallRequest createNodesSingleStartallRequest = default(CreateNodesSingleStartallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleStartallWithHttpInfoAsync(node, createNodesSingleStartallRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStartall Start all VMs and containers located on this node (by default only those with onboot&#x3D;1).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStartallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStartallWithHttpInfoAsync(string node, CreateNodesSingleStartallRequest createNodesSingleStartallRequest = default(CreateNodesSingleStartallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStartall");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStartallRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStartall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/startall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStartall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStatus Reboot or shutdown a node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStatusRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleStatus(string node, CreateNodesSingleStatusRequest createNodesSingleStatusRequest = default(CreateNodesSingleStatusRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleStatusWithHttpInfo(node, createNodesSingleStatusRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStatus Reboot or shutdown a node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStatusRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStatusWithHttpInfo(string node, CreateNodesSingleStatusRequest createNodesSingleStatusRequest = default(CreateNodesSingleStatusRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStatusRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStatus Reboot or shutdown a node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStatusRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStatusAsync(string node, CreateNodesSingleStatusRequest createNodesSingleStatusRequest = default(CreateNodesSingleStatusRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleStatusWithHttpInfoAsync(node, createNodesSingleStatusRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStatus Reboot or shutdown a node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStatusRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStatusWithHttpInfoAsync(string node, CreateNodesSingleStatusRequest createNodesSingleStatusRequest = default(CreateNodesSingleStatusRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStatusRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStopall Stop all VMs and Containers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStopallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleStopall(string node, CreateNodesSingleStopallRequest createNodesSingleStopallRequest = default(CreateNodesSingleStopallRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleStopallWithHttpInfo(node, createNodesSingleStopallRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStopall Stop all VMs and Containers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStopallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStopallWithHttpInfo(string node, CreateNodesSingleStopallRequest createNodesSingleStopallRequest = default(CreateNodesSingleStopallRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStopall");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStopallRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStopall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/stopall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStopall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStopall Stop all VMs and Containers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStopallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStopallAsync(string node, CreateNodesSingleStopallRequest createNodesSingleStopallRequest = default(CreateNodesSingleStopallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleStopallWithHttpInfoAsync(node, createNodesSingleStopallRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStopall Stop all VMs and Containers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleStopallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStopallWithHttpInfoAsync(string node, CreateNodesSingleStopallRequest createNodesSingleStopallRequest = default(CreateNodesSingleStopallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStopall");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStopallRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStopall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/stopall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStopall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleContent Allocate disk images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleContentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleStorageSingleContent200Response</returns>
        public CreateNodesSingleStorageSingleContent200Response CreateNodesSingleStorageSingleContent(string node, string storage, CreateNodesSingleStorageSingleContentRequest createNodesSingleStorageSingleContentRequest = default(CreateNodesSingleStorageSingleContentRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleStorageSingleContent200Response> localVarResponse = CreateNodesSingleStorageSingleContentWithHttpInfo(node, storage, createNodesSingleStorageSingleContentRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleContent Allocate disk images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleContentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleStorageSingleContent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleStorageSingleContent200Response> CreateNodesSingleStorageSingleContentWithHttpInfo(string node, string storage, CreateNodesSingleStorageSingleContentRequest createNodesSingleStorageSingleContentRequest = default(CreateNodesSingleStorageSingleContentRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContent");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContent");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleContentRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleContent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleStorageSingleContent200Response>("/nodes/{node}/storage/{storage}/content", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleContent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleContent Allocate disk images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleContentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleStorageSingleContent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleStorageSingleContent200Response> CreateNodesSingleStorageSingleContentAsync(string node, string storage, CreateNodesSingleStorageSingleContentRequest createNodesSingleStorageSingleContentRequest = default(CreateNodesSingleStorageSingleContentRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleStorageSingleContent200Response> localVarResponse = await CreateNodesSingleStorageSingleContentWithHttpInfoAsync(node, storage, createNodesSingleStorageSingleContentRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleContent Allocate disk images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleContentRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleStorageSingleContent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleStorageSingleContent200Response>> CreateNodesSingleStorageSingleContentWithHttpInfoAsync(string node, string storage, CreateNodesSingleStorageSingleContentRequest createNodesSingleStorageSingleContentRequest = default(CreateNodesSingleStorageSingleContentRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContent");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContent");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleContentRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleContent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleStorageSingleContent200Response>("/nodes/{node}/storage/{storage}/content", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleContent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleContentSingle Copy a volume. This is experimental code - do not use.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="createNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleStorageSingleContentSingle(string node, string storage, string volume, CreateNodesSingleStorageSingleContentSingleRequest createNodesSingleStorageSingleContentSingleRequest = default(CreateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleStorageSingleContentSingleWithHttpInfo(node, storage, volume, createNodesSingleStorageSingleContentSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleContentSingle Copy a volume. This is experimental code - do not use.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="createNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStorageSingleContentSingleWithHttpInfo(string node, string storage, string volume, CreateNodesSingleStorageSingleContentSingleRequest createNodesSingleStorageSingleContentSingleRequest = default(CreateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'volume' is set
            if (volume == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'volume' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContentSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.PathParameters.Add("volume", ProxmoxSharp.Client.ClientUtils.ParameterToString(volume)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleContentSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleContentSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/content/{volume}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleContentSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleContentSingle Copy a volume. This is experimental code - do not use.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="createNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStorageSingleContentSingleAsync(string node, string storage, string volume, CreateNodesSingleStorageSingleContentSingleRequest createNodesSingleStorageSingleContentSingleRequest = default(CreateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleStorageSingleContentSingleWithHttpInfoAsync(node, storage, volume, createNodesSingleStorageSingleContentSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleContentSingle Copy a volume. This is experimental code - do not use.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="createNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStorageSingleContentSingleWithHttpInfoAsync(string node, string storage, string volume, CreateNodesSingleStorageSingleContentSingleRequest createNodesSingleStorageSingleContentSingleRequest = default(CreateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'volume' is set
            if (volume == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'volume' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleContentSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.PathParameters.Add("volume", ProxmoxSharp.Client.ClientUtils.ParameterToString(volume)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleContentSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleContentSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/content/{volume}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleContentSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleDownloadurl Download templates, ISO images, OVAs and VM images by using an URL.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleDownloadurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleStorageSingleDownloadurl(string node, string storage, CreateNodesSingleStorageSingleDownloadurlRequest createNodesSingleStorageSingleDownloadurlRequest = default(CreateNodesSingleStorageSingleDownloadurlRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleStorageSingleDownloadurlWithHttpInfo(node, storage, createNodesSingleStorageSingleDownloadurlRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleDownloadurl Download templates, ISO images, OVAs and VM images by using an URL.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleDownloadurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStorageSingleDownloadurlWithHttpInfo(string node, string storage, CreateNodesSingleStorageSingleDownloadurlRequest createNodesSingleStorageSingleDownloadurlRequest = default(CreateNodesSingleStorageSingleDownloadurlRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleDownloadurl");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleDownloadurl");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleDownloadurlRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleDownloadurl";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/download-url", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleDownloadurl", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleDownloadurl Download templates, ISO images, OVAs and VM images by using an URL.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleDownloadurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStorageSingleDownloadurlAsync(string node, string storage, CreateNodesSingleStorageSingleDownloadurlRequest createNodesSingleStorageSingleDownloadurlRequest = default(CreateNodesSingleStorageSingleDownloadurlRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleStorageSingleDownloadurlWithHttpInfoAsync(node, storage, createNodesSingleStorageSingleDownloadurlRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleDownloadurl Download templates, ISO images, OVAs and VM images by using an URL.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleDownloadurlRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStorageSingleDownloadurlWithHttpInfoAsync(string node, string storage, CreateNodesSingleStorageSingleDownloadurlRequest createNodesSingleStorageSingleDownloadurlRequest = default(CreateNodesSingleStorageSingleDownloadurlRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleDownloadurl");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleDownloadurl");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleDownloadurlRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleDownloadurl";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/download-url", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleDownloadurl", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleOciregistrypull Pull an OCI image from a registry.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleOciregistrypullRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleStorageSingleOciregistrypull(string node, string storage, CreateNodesSingleStorageSingleOciregistrypullRequest createNodesSingleStorageSingleOciregistrypullRequest = default(CreateNodesSingleStorageSingleOciregistrypullRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleStorageSingleOciregistrypullWithHttpInfo(node, storage, createNodesSingleStorageSingleOciregistrypullRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleOciregistrypull Pull an OCI image from a registry.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleOciregistrypullRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStorageSingleOciregistrypullWithHttpInfo(string node, string storage, CreateNodesSingleStorageSingleOciregistrypullRequest createNodesSingleStorageSingleOciregistrypullRequest = default(CreateNodesSingleStorageSingleOciregistrypullRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleOciregistrypull");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleOciregistrypull");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleOciregistrypullRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleOciregistrypull";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/oci-registry-pull", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleOciregistrypull", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleOciregistrypull Pull an OCI image from a registry.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleOciregistrypullRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStorageSingleOciregistrypullAsync(string node, string storage, CreateNodesSingleStorageSingleOciregistrypullRequest createNodesSingleStorageSingleOciregistrypullRequest = default(CreateNodesSingleStorageSingleOciregistrypullRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleStorageSingleOciregistrypullWithHttpInfoAsync(node, storage, createNodesSingleStorageSingleOciregistrypullRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleOciregistrypull Pull an OCI image from a registry.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleOciregistrypullRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStorageSingleOciregistrypullWithHttpInfoAsync(string node, string storage, CreateNodesSingleStorageSingleOciregistrypullRequest createNodesSingleStorageSingleOciregistrypullRequest = default(CreateNodesSingleStorageSingleOciregistrypullRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleOciregistrypull");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleOciregistrypull");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleOciregistrypullRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleOciregistrypull";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/oci-registry-pull", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleOciregistrypull", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleUpload Upload templates, ISO images, OVAs and VM images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleUploadRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleStorageSingleUpload(string node, string storage, CreateNodesSingleStorageSingleUploadRequest createNodesSingleStorageSingleUploadRequest = default(CreateNodesSingleStorageSingleUploadRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleStorageSingleUploadWithHttpInfo(node, storage, createNodesSingleStorageSingleUploadRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleUpload Upload templates, ISO images, OVAs and VM images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleUploadRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleStorageSingleUploadWithHttpInfo(string node, string storage, CreateNodesSingleStorageSingleUploadRequest createNodesSingleStorageSingleUploadRequest = default(CreateNodesSingleStorageSingleUploadRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleUpload");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleUpload");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleUploadRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleUpload";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/upload", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleUpload", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleStorageSingleUpload Upload templates, ISO images, OVAs and VM images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleUploadRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleStorageSingleUploadAsync(string node, string storage, CreateNodesSingleStorageSingleUploadRequest createNodesSingleStorageSingleUploadRequest = default(CreateNodesSingleStorageSingleUploadRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleStorageSingleUploadWithHttpInfoAsync(node, storage, createNodesSingleStorageSingleUploadRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleStorageSingleUpload Upload templates, ISO images, OVAs and VM images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="createNodesSingleStorageSingleUploadRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleStorageSingleUploadWithHttpInfoAsync(string node, string storage, CreateNodesSingleStorageSingleUploadRequest createNodesSingleStorageSingleUploadRequest = default(CreateNodesSingleStorageSingleUploadRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleUpload");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->CreateNodesSingleStorageSingleUpload");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = createNodesSingleStorageSingleUploadRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleStorageSingleUpload";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/upload", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleStorageSingleUpload", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleSubscription Update subscription info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleSubscription(string node, CreateNodesSingleSubscriptionRequest createNodesSingleSubscriptionRequest = default(CreateNodesSingleSubscriptionRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleSubscriptionWithHttpInfo(node, createNodesSingleSubscriptionRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleSubscription Update subscription info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleSubscriptionWithHttpInfo(string node, CreateNodesSingleSubscriptionRequest createNodesSingleSubscriptionRequest = default(CreateNodesSingleSubscriptionRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleSubscription");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleSubscriptionRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleSubscription";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/subscription", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleSubscription", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleSubscription Update subscription info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleSubscriptionAsync(string node, CreateNodesSingleSubscriptionRequest createNodesSingleSubscriptionRequest = default(CreateNodesSingleSubscriptionRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleSubscriptionWithHttpInfoAsync(node, createNodesSingleSubscriptionRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleSubscription Update subscription info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleSubscriptionWithHttpInfoAsync(string node, CreateNodesSingleSubscriptionRequest createNodesSingleSubscriptionRequest = default(CreateNodesSingleSubscriptionRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleSubscription");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleSubscriptionRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleSubscription";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/subscription", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleSubscription", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleSuspendall Suspend all VMs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSuspendallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleSuspendall(string node, CreateNodesSingleSuspendallRequest createNodesSingleSuspendallRequest = default(CreateNodesSingleSuspendallRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleSuspendallWithHttpInfo(node, createNodesSingleSuspendallRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleSuspendall Suspend all VMs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSuspendallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleSuspendallWithHttpInfo(string node, CreateNodesSingleSuspendallRequest createNodesSingleSuspendallRequest = default(CreateNodesSingleSuspendallRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleSuspendall");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleSuspendallRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleSuspendall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/suspendall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleSuspendall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleSuspendall Suspend all VMs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSuspendallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleSuspendallAsync(string node, CreateNodesSingleSuspendallRequest createNodesSingleSuspendallRequest = default(CreateNodesSingleSuspendallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleSuspendallWithHttpInfoAsync(node, createNodesSingleSuspendallRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleSuspendall Suspend all VMs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleSuspendallRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleSuspendallWithHttpInfoAsync(string node, CreateNodesSingleSuspendallRequest createNodesSingleSuspendallRequest = default(CreateNodesSingleSuspendallRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleSuspendall");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleSuspendallRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleSuspendall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/suspendall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleSuspendall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleTermproxy Creates a VNC Shell proxy.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleTermproxy(string node, CreateNodesSingleTermproxyRequest createNodesSingleTermproxyRequest = default(CreateNodesSingleTermproxyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleTermproxyWithHttpInfo(node, createNodesSingleTermproxyRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleTermproxy Creates a VNC Shell proxy.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleTermproxyWithHttpInfo(string node, CreateNodesSingleTermproxyRequest createNodesSingleTermproxyRequest = default(CreateNodesSingleTermproxyRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleTermproxy");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleTermproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleTermproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/termproxy", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleTermproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleTermproxy Creates a VNC Shell proxy.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleTermproxyAsync(string node, CreateNodesSingleTermproxyRequest createNodesSingleTermproxyRequest = default(CreateNodesSingleTermproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleTermproxyWithHttpInfoAsync(node, createNodesSingleTermproxyRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleTermproxy Creates a VNC Shell proxy.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleTermproxyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleTermproxyWithHttpInfoAsync(string node, CreateNodesSingleTermproxyRequest createNodesSingleTermproxyRequest = default(CreateNodesSingleTermproxyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleTermproxy");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleTermproxyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleTermproxy";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/termproxy", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleTermproxy", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleVncshell Creates a VNC Shell proxy.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVncshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleVncshell(string node, CreateNodesSingleVncshellRequest createNodesSingleVncshellRequest = default(CreateNodesSingleVncshellRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleVncshellWithHttpInfo(node, createNodesSingleVncshellRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleVncshell Creates a VNC Shell proxy.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVncshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleVncshellWithHttpInfo(string node, CreateNodesSingleVncshellRequest createNodesSingleVncshellRequest = default(CreateNodesSingleVncshellRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleVncshell");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleVncshellRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleVncshell";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/vncshell", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleVncshell", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleVncshell Creates a VNC Shell proxy.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVncshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleVncshellAsync(string node, CreateNodesSingleVncshellRequest createNodesSingleVncshellRequest = default(CreateNodesSingleVncshellRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleVncshellWithHttpInfoAsync(node, createNodesSingleVncshellRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleVncshell Creates a VNC Shell proxy.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVncshellRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleVncshellWithHttpInfoAsync(string node, CreateNodesSingleVncshellRequest createNodesSingleVncshellRequest = default(CreateNodesSingleVncshellRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleVncshell");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleVncshellRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleVncshell";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/vncshell", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleVncshell", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleVzdump Create backup.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVzdumpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateNodesSingleVzdump(string node, CreateNodesSingleVzdumpRequest createNodesSingleVzdumpRequest = default(CreateNodesSingleVzdumpRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateNodesSingleVzdumpWithHttpInfo(node, createNodesSingleVzdumpRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleVzdump Create backup.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVzdumpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateNodesSingleVzdumpWithHttpInfo(string node, CreateNodesSingleVzdumpRequest createNodesSingleVzdumpRequest = default(CreateNodesSingleVzdumpRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleVzdump");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleVzdumpRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleVzdump";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/vzdump", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleVzdump", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleVzdump Create backup.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVzdumpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateNodesSingleVzdumpAsync(string node, CreateNodesSingleVzdumpRequest createNodesSingleVzdumpRequest = default(CreateNodesSingleVzdumpRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateNodesSingleVzdumpWithHttpInfoAsync(node, createNodesSingleVzdumpRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleVzdump Create backup.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createNodesSingleVzdumpRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateNodesSingleVzdumpWithHttpInfoAsync(string node, CreateNodesSingleVzdumpRequest createNodesSingleVzdumpRequest = default(CreateNodesSingleVzdumpRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleVzdump");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createNodesSingleVzdumpRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleVzdump";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/vzdump", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleVzdump", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleWakeonlan Try to wake a node via &#39;wake on LAN&#39; network packet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleWakeonlan200Response</returns>
        public CreateNodesSingleWakeonlan200Response CreateNodesSingleWakeonlan(string node, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleWakeonlan200Response> localVarResponse = CreateNodesSingleWakeonlanWithHttpInfo(node, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleWakeonlan Try to wake a node via &#39;wake on LAN&#39; network packet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleWakeonlan200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleWakeonlan200Response> CreateNodesSingleWakeonlanWithHttpInfo(string node, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleWakeonlan");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleWakeonlan";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleWakeonlan200Response>("/nodes/{node}/wakeonlan", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleWakeonlan", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createNodesSingleWakeonlan Try to wake a node via &#39;wake on LAN&#39; network packet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleWakeonlan200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleWakeonlan200Response> CreateNodesSingleWakeonlanAsync(string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleWakeonlan200Response> localVarResponse = await CreateNodesSingleWakeonlanWithHttpInfoAsync(node, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createNodesSingleWakeonlan Try to wake a node via &#39;wake on LAN&#39; network packet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleWakeonlan200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleWakeonlan200Response>> CreateNodesSingleWakeonlanWithHttpInfoAsync(string node, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateNodesSingleWakeonlan");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateNodesSingleWakeonlan";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleWakeonlan200Response>("/nodes/{node}/wakeonlan", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateNodesSingleWakeonlan", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createPool Create new pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreatePool(CreatePoolRequest createPoolRequest = default(CreatePoolRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreatePoolWithHttpInfo(createPoolRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createPool Create new pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreatePoolWithHttpInfo(CreatePoolRequest createPoolRequest = default(CreatePoolRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createPoolRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreatePool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/pools", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreatePool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createPool Create new pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreatePoolAsync(CreatePoolRequest createPoolRequest = default(CreatePoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreatePoolWithHttpInfoAsync(createPoolRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createPool Create new pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createPoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreatePoolWithHttpInfoAsync(CreatePoolRequest createPoolRequest = default(CreatePoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createPoolRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreatePool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/pools", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreatePool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createStorage Create a new storage.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createStorageRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateStorage200Response</returns>
        public CreateStorage200Response CreateStorage(CreateStorageRequest createStorageRequest = default(CreateStorageRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateStorage200Response> localVarResponse = CreateStorageWithHttpInfo(createStorageRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createStorage Create a new storage.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createStorageRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateStorage200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateStorage200Response> CreateStorageWithHttpInfo(CreateStorageRequest createStorageRequest = default(CreateStorageRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createStorageRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateStorage";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateStorage200Response>("/storage", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateStorage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createStorage Create a new storage.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createStorageRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateStorage200Response</returns>
        public async System.Threading.Tasks.Task<CreateStorage200Response> CreateStorageAsync(CreateStorageRequest createStorageRequest = default(CreateStorageRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateStorage200Response> localVarResponse = await CreateStorageWithHttpInfoAsync(createStorageRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createStorage Create a new storage.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createStorageRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateStorage200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateStorage200Response>> CreateStorageWithHttpInfoAsync(CreateStorageRequest createStorageRequest = default(CreateStorageRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createStorageRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateStorage";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateStorage200Response>("/storage", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateStorage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createVM Create or restore a virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateVM(string node, CreateVMRequest createVMRequest = default(CreateVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateVMWithHttpInfo(node, createVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createVM Create or restore a virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateVMWithHttpInfo(string node, CreateVMRequest createVMRequest = default(CreateVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createVM Create or restore a virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateVMAsync(string node, CreateVMRequest createVMRequest = default(CreateVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateVMWithHttpInfoAsync(node, createVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createVM Create or restore a virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="createVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateVMWithHttpInfoAsync(string node, CreateVMRequest createVMRequest = default(CreateVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = createVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createVMFirewallIPSet Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateVMFirewallIPSet(string node, int vmid, CreateVMFirewallIPSetRequest createVMFirewallIPSetRequest = default(CreateVMFirewallIPSetRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateVMFirewallIPSetWithHttpInfo(node, vmid, createVMFirewallIPSetRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createVMFirewallIPSet Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateVMFirewallIPSetWithHttpInfo(string node, int vmid, CreateVMFirewallIPSetRequest createVMFirewallIPSetRequest = default(CreateVMFirewallIPSetRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateVMFirewallIPSet");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createVMFirewallIPSetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateVMFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateVMFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createVMFirewallIPSet Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateVMFirewallIPSetAsync(string node, int vmid, CreateVMFirewallIPSetRequest createVMFirewallIPSetRequest = default(CreateVMFirewallIPSetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateVMFirewallIPSetWithHttpInfoAsync(node, vmid, createVMFirewallIPSetRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createVMFirewallIPSet Create new IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallIPSetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateVMFirewallIPSetWithHttpInfoAsync(string node, int vmid, CreateVMFirewallIPSetRequest createVMFirewallIPSetRequest = default(CreateVMFirewallIPSetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateVMFirewallIPSet");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createVMFirewallIPSetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateVMFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateVMFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createVMFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response CreateVMFirewallRule(string node, int vmid, CreateVMFirewallRuleRequest createVMFirewallRuleRequest = default(CreateVMFirewallRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = CreateVMFirewallRuleWithHttpInfo(node, vmid, createVMFirewallRuleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createVMFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> CreateVMFirewallRuleWithHttpInfo(string node, int vmid, CreateVMFirewallRuleRequest createVMFirewallRuleRequest = default(CreateVMFirewallRuleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateVMFirewallRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createVMFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateVMFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateVMFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createVMFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> CreateVMFirewallRuleAsync(string node, int vmid, CreateVMFirewallRuleRequest createVMFirewallRuleRequest = default(CreateVMFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await CreateVMFirewallRuleWithHttpInfoAsync(node, vmid, createVMFirewallRuleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createVMFirewallRule Create new rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> CreateVMFirewallRuleWithHttpInfoAsync(string node, int vmid, CreateVMFirewallRuleRequest createVMFirewallRuleRequest = default(CreateVMFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateVMFirewallRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createVMFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateVMFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateVMFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createVMSnapshot Snapshot a VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response CreateVMSnapshot(string node, int vmid, CreateVMSnapshotRequest createVMSnapshotRequest = default(CreateVMSnapshotRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = CreateVMSnapshotWithHttpInfo(node, vmid, createVMSnapshotRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createVMSnapshot Snapshot a VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> CreateVMSnapshotWithHttpInfo(string node, int vmid, CreateVMSnapshotRequest createVMSnapshotRequest = default(CreateVMSnapshotRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateVMSnapshot");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createVMSnapshotRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateVMSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/snapshot", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateVMSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// createVMSnapshot Snapshot a VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> CreateVMSnapshotAsync(string node, int vmid, CreateVMSnapshotRequest createVMSnapshotRequest = default(CreateVMSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await CreateVMSnapshotWithHttpInfoAsync(node, vmid, createVMSnapshotRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// createVMSnapshot Snapshot a VM.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="createVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> CreateVMSnapshotWithHttpInfoAsync(string node, int vmid, CreateVMSnapshotRequest createVMSnapshotRequest = default(CreateVMSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->CreateVMSnapshot");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = createVMSnapshotRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.CreateVMSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/snapshot", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateVMSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessDomainsSingle Delete an authentication server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteAccessDomainsSingle(string realm, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteAccessDomainsSingleWithHttpInfo(realm);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessDomainsSingle Delete an authentication server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteAccessDomainsSingleWithHttpInfo(string realm, int operationIndex = 0)
        {
            // verify the required parameter 'realm' is set
            if (realm == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'realm' when calling ProxmoxGeneratedApi->DeleteAccessDomainsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("realm", ProxmoxSharp.Client.ClientUtils.ParameterToString(realm)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessDomainsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/access/domains/{realm}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessDomainsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessDomainsSingle Delete an authentication server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessDomainsSingleAsync(string realm, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteAccessDomainsSingleWithHttpInfoAsync(realm, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessDomainsSingle Delete an authentication server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteAccessDomainsSingleWithHttpInfoAsync(string realm, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'realm' is set
            if (realm == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'realm' when calling ProxmoxGeneratedApi->DeleteAccessDomainsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("realm", ProxmoxSharp.Client.ClientUtils.ParameterToString(realm)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessDomainsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/access/domains/{realm}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessDomainsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessGroupsSingle Delete group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteAccessGroupsSingle(string groupid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteAccessGroupsSingleWithHttpInfo(groupid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessGroupsSingle Delete group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteAccessGroupsSingleWithHttpInfo(string groupid, int operationIndex = 0)
        {
            // verify the required parameter 'groupid' is set
            if (groupid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'groupid' when calling ProxmoxGeneratedApi->DeleteAccessGroupsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("groupid", ProxmoxSharp.Client.ClientUtils.ParameterToString(groupid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/access/groups/{groupid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessGroupsSingle Delete group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessGroupsSingleAsync(string groupid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteAccessGroupsSingleWithHttpInfoAsync(groupid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessGroupsSingle Delete group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteAccessGroupsSingleWithHttpInfoAsync(string groupid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'groupid' is set
            if (groupid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'groupid' when calling ProxmoxGeneratedApi->DeleteAccessGroupsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("groupid", ProxmoxSharp.Client.ClientUtils.ParameterToString(groupid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/access/groups/{groupid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessRolesSingle Delete role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteAccessRolesSingle(string roleid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteAccessRolesSingleWithHttpInfo(roleid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessRolesSingle Delete role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteAccessRolesSingleWithHttpInfo(string roleid, int operationIndex = 0)
        {
            // verify the required parameter 'roleid' is set
            if (roleid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'roleid' when calling ProxmoxGeneratedApi->DeleteAccessRolesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("roleid", ProxmoxSharp.Client.ClientUtils.ParameterToString(roleid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessRolesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/access/roles/{roleid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessRolesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessRolesSingle Delete role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessRolesSingleAsync(string roleid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteAccessRolesSingleWithHttpInfoAsync(roleid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessRolesSingle Delete role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteAccessRolesSingleWithHttpInfoAsync(string roleid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'roleid' is set
            if (roleid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'roleid' when calling ProxmoxGeneratedApi->DeleteAccessRolesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("roleid", ProxmoxSharp.Client.ClientUtils.ParameterToString(roleid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessRolesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/access/roles/{roleid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessRolesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessTfaSingleSingle Delete a TFA entry by ID.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteAccessTfaSingleSingle(string id, string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteAccessTfaSingleSingleWithHttpInfo(id, userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessTfaSingleSingle Delete a TFA entry by ID.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteAccessTfaSingleSingleWithHttpInfo(string id, string userid, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteAccessTfaSingleSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->DeleteAccessTfaSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessTfaSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/access/tfa/{userid}/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessTfaSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessTfaSingleSingle Delete a TFA entry by ID.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessTfaSingleSingleAsync(string id, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteAccessTfaSingleSingleWithHttpInfoAsync(id, userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessTfaSingleSingle Delete a TFA entry by ID.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteAccessTfaSingleSingleWithHttpInfoAsync(string id, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteAccessTfaSingleSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->DeleteAccessTfaSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessTfaSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/access/tfa/{userid}/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessTfaSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessUsersSingle Delete user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteAccessUsersSingle(string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteAccessUsersSingleWithHttpInfo(userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessUsersSingle Delete user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteAccessUsersSingleWithHttpInfo(string userid, int operationIndex = 0)
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->DeleteAccessUsersSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessUsersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/access/users/{userid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessUsersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessUsersSingle Delete user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessUsersSingleAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteAccessUsersSingleWithHttpInfoAsync(userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessUsersSingle Delete user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteAccessUsersSingleWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->DeleteAccessUsersSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessUsersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/access/users/{userid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessUsersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessUsersSingleTokenSingle Remove API token for a specific user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteAccessUsersSingleTokenSingle(string tokenid, string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteAccessUsersSingleTokenSingleWithHttpInfo(tokenid, userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessUsersSingleTokenSingle Remove API token for a specific user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteAccessUsersSingleTokenSingleWithHttpInfo(string tokenid, string userid, int operationIndex = 0)
        {
            // verify the required parameter 'tokenid' is set
            if (tokenid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'tokenid' when calling ProxmoxGeneratedApi->DeleteAccessUsersSingleTokenSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->DeleteAccessUsersSingleTokenSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tokenid", ProxmoxSharp.Client.ClientUtils.ParameterToString(tokenid)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessUsersSingleTokenSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/access/users/{userid}/token/{tokenid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessUsersSingleTokenSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteAccessUsersSingleTokenSingle Remove API token for a specific user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteAccessUsersSingleTokenSingleAsync(string tokenid, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteAccessUsersSingleTokenSingleWithHttpInfoAsync(tokenid, userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteAccessUsersSingleTokenSingle Remove API token for a specific user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteAccessUsersSingleTokenSingleWithHttpInfoAsync(string tokenid, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'tokenid' is set
            if (tokenid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'tokenid' when calling ProxmoxGeneratedApi->DeleteAccessUsersSingleTokenSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->DeleteAccessUsersSingleTokenSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tokenid", ProxmoxSharp.Client.ClientUtils.ParameterToString(tokenid)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteAccessUsersSingleTokenSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/access/users/{userid}/token/{tokenid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteAccessUsersSingleTokenSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterAcmeAccountSingle Deactivate existing ACME account at CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterAcmeAccountSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterAcmeAccountSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterAcmeAccountSingle Deactivate existing ACME account at CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterAcmeAccountSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterAcmeAccountSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterAcmeAccountSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/acme/account/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterAcmeAccountSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterAcmeAccountSingle Deactivate existing ACME account at CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterAcmeAccountSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterAcmeAccountSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterAcmeAccountSingle Deactivate existing ACME account at CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterAcmeAccountSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterAcmeAccountSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterAcmeAccountSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/acme/account/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterAcmeAccountSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterAcmePluginsSingle Delete ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterAcmePluginsSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterAcmePluginsSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterAcmePluginsSingle Delete ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterAcmePluginsSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterAcmePluginsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterAcmePluginsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/acme/plugins/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterAcmePluginsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterAcmePluginsSingle Delete ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterAcmePluginsSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterAcmePluginsSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterAcmePluginsSingle Delete ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterAcmePluginsSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterAcmePluginsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterAcmePluginsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/acme/plugins/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterAcmePluginsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterBackupSingle Delete vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterBackupSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterBackupSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterBackupSingle Delete vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterBackupSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterBackupSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterBackupSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/backup/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterBackupSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterBackupSingle Delete vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterBackupSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterBackupSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterBackupSingle Delete vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterBackupSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterBackupSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterBackupSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/backup/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterBackupSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterConfigNodesSingle Removes a node from the cluster configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterConfigNodesSingle(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterConfigNodesSingleWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterConfigNodesSingle Removes a node from the cluster configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterConfigNodesSingleWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteClusterConfigNodesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterConfigNodesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/config/nodes/{node}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterConfigNodesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterConfigNodesSingle Removes a node from the cluster configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterConfigNodesSingleAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterConfigNodesSingleWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterConfigNodesSingle Removes a node from the cluster configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterConfigNodesSingleWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteClusterConfigNodesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterConfigNodesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/config/nodes/{node}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterConfigNodesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterFirewallAliasesSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterFirewallAliasesSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterFirewallAliasesSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterFirewallAliasesSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterFirewallAliasesSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterFirewallAliasesSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterFirewallGroup Delete security group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterFirewallGroup(string group, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterFirewallGroupWithHttpInfo(group);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterFirewallGroup Delete security group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterFirewallGroupWithHttpInfo(string group, int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->DeleteClusterFirewallGroup");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterFirewallGroup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/firewall/groups/{group}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterFirewallGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterFirewallGroup Delete security group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterFirewallGroupAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterFirewallGroupWithHttpInfoAsync(group, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterFirewallGroup Delete security group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterFirewallGroupWithHttpInfoAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->DeleteClusterFirewallGroup");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterFirewallGroup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/firewall/groups/{group}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterFirewallGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterFirewallIPSet Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterFirewallIPSet(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterFirewallIPSetWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterFirewallIPSet Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterFirewallIPSetWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterFirewallIPSet");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterFirewallIPSet Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterFirewallIPSetAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterFirewallIPSetWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterFirewallIPSet Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterFirewallIPSetWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterFirewallIPSet");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterHaGroupsSingle Delete ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterHaGroupsSingle(string group, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterHaGroupsSingleWithHttpInfo(group);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterHaGroupsSingle Delete ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterHaGroupsSingleWithHttpInfo(string group, int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->DeleteClusterHaGroupsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterHaGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/ha/groups/{group}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterHaGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterHaGroupsSingle Delete ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterHaGroupsSingleAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterHaGroupsSingleWithHttpInfoAsync(group, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterHaGroupsSingle Delete ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterHaGroupsSingleWithHttpInfoAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->DeleteClusterHaGroupsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterHaGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/ha/groups/{group}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterHaGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterHaResourcesSingle Delete resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterHaResourcesSingle(string sid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterHaResourcesSingleWithHttpInfo(sid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterHaResourcesSingle Delete resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterHaResourcesSingleWithHttpInfo(string sid, int operationIndex = 0)
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->DeleteClusterHaResourcesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterHaResourcesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/ha/resources/{sid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterHaResourcesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterHaResourcesSingle Delete resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterHaResourcesSingleAsync(string sid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterHaResourcesSingleWithHttpInfoAsync(sid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterHaResourcesSingle Delete resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterHaResourcesSingleWithHttpInfoAsync(string sid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->DeleteClusterHaResourcesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterHaResourcesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/ha/resources/{sid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterHaResourcesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterHaRulesSingle Delete HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterHaRulesSingle(string rule, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterHaRulesSingleWithHttpInfo(rule);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterHaRulesSingle Delete HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterHaRulesSingleWithHttpInfo(string rule, int operationIndex = 0)
        {
            // verify the required parameter 'rule' is set
            if (rule == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'rule' when calling ProxmoxGeneratedApi->DeleteClusterHaRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("rule", ProxmoxSharp.Client.ClientUtils.ParameterToString(rule)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterHaRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/ha/rules/{rule}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterHaRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterHaRulesSingle Delete HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterHaRulesSingleAsync(string rule, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterHaRulesSingleWithHttpInfoAsync(rule, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterHaRulesSingle Delete HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterHaRulesSingleWithHttpInfoAsync(string rule, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'rule' is set
            if (rule == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'rule' when calling ProxmoxGeneratedApi->DeleteClusterHaRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("rule", ProxmoxSharp.Client.ClientUtils.ParameterToString(rule)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterHaRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/ha/rules/{rule}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterHaRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterJobsRealmsyncSingle Delete realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterJobsRealmsyncSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterJobsRealmsyncSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterJobsRealmsyncSingle Delete realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterJobsRealmsyncSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterJobsRealmsyncSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterJobsRealmsyncSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/jobs/realm-sync/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterJobsRealmsyncSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterJobsRealmsyncSingle Delete realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterJobsRealmsyncSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterJobsRealmsyncSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterJobsRealmsyncSingle Delete realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterJobsRealmsyncSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterJobsRealmsyncSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterJobsRealmsyncSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/jobs/realm-sync/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterJobsRealmsyncSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterMappingDirSingle Remove directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterMappingDirSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterMappingDirSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterMappingDirSingle Remove directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterMappingDirSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterMappingDirSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterMappingDirSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/mapping/dir/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterMappingDirSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterMappingDirSingle Remove directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterMappingDirSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterMappingDirSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterMappingDirSingle Remove directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterMappingDirSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterMappingDirSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterMappingDirSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/mapping/dir/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterMappingDirSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterMappingPciSingle Remove Hardware Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterMappingPciSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterMappingPciSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterMappingPciSingle Remove Hardware Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterMappingPciSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterMappingPciSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterMappingPciSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/mapping/pci/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterMappingPciSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterMappingPciSingle Remove Hardware Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterMappingPciSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterMappingPciSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterMappingPciSingle Remove Hardware Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterMappingPciSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterMappingPciSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterMappingPciSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/mapping/pci/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterMappingPciSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterMappingUsbSingle Remove Hardware Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterMappingUsbSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterMappingUsbSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterMappingUsbSingle Remove Hardware Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterMappingUsbSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterMappingUsbSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterMappingUsbSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/mapping/usb/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterMappingUsbSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterMappingUsbSingle Remove Hardware Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterMappingUsbSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterMappingUsbSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterMappingUsbSingle Remove Hardware Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterMappingUsbSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterMappingUsbSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterMappingUsbSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/mapping/usb/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterMappingUsbSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterMetricsServerSingle Remove Metric server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterMetricsServerSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterMetricsServerSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterMetricsServerSingle Remove Metric server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterMetricsServerSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterMetricsServerSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterMetricsServerSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/metrics/server/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterMetricsServerSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterMetricsServerSingle Remove Metric server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterMetricsServerSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterMetricsServerSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterMetricsServerSingle Remove Metric server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterMetricsServerSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterMetricsServerSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterMetricsServerSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/metrics/server/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterMetricsServerSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsGotifySingle Remove gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterNotificationsEndpointsGotifySingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterNotificationsEndpointsGotifySingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsGotifySingle Remove gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsGotifySingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsEndpointsGotifySingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsEndpointsGotifySingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/notifications/endpoints/gotify/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsEndpointsGotifySingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsGotifySingle Remove gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsGotifySingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsGotifySingle Remove gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsEndpointsGotifySingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsEndpointsGotifySingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/gotify/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsEndpointsGotifySingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsSendmailSingle Remove sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterNotificationsEndpointsSendmailSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterNotificationsEndpointsSendmailSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsSendmailSingle Remove sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsSendmailSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsEndpointsSendmailSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsEndpointsSendmailSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/notifications/endpoints/sendmail/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsEndpointsSendmailSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsSendmailSingle Remove sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsSendmailSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsSendmailSingle Remove sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsEndpointsSendmailSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsEndpointsSendmailSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/sendmail/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsEndpointsSendmailSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsSmtpSingle Remove smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterNotificationsEndpointsSmtpSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterNotificationsEndpointsSmtpSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsSmtpSingle Remove smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsSmtpSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsEndpointsSmtpSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsEndpointsSmtpSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/notifications/endpoints/smtp/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsEndpointsSmtpSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsSmtpSingle Remove smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsSmtpSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsSmtpSingle Remove smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsEndpointsSmtpSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsEndpointsSmtpSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/smtp/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsEndpointsSmtpSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsWebhookSingle Remove webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterNotificationsEndpointsWebhookSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterNotificationsEndpointsWebhookSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsWebhookSingle Remove webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsWebhookSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsEndpointsWebhookSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsEndpointsWebhookSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/notifications/endpoints/webhook/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsEndpointsWebhookSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsWebhookSingle Remove webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsEndpointsWebhookSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsEndpointsWebhookSingle Remove webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsEndpointsWebhookSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsEndpointsWebhookSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/webhook/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsEndpointsWebhookSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsMatchersSingle Remove matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterNotificationsMatchersSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterNotificationsMatchersSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsMatchersSingle Remove matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterNotificationsMatchersSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsMatchersSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsMatchersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/notifications/matchers/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsMatchersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterNotificationsMatchersSingle Remove matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterNotificationsMatchersSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterNotificationsMatchersSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterNotificationsMatchersSingle Remove matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterNotificationsMatchersSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteClusterNotificationsMatchersSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterNotificationsMatchersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/notifications/matchers/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterNotificationsMatchersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterReplicationSingle Mark replication job for removal.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterReplicationSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterReplicationSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterReplicationSingle Mark replication job for removal.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterReplicationSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterReplicationSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterReplicationSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/replication/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterReplicationSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterReplicationSingle Mark replication job for removal.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterReplicationSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterReplicationSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterReplicationSingle Mark replication job for removal.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterReplicationSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterReplicationSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterReplicationSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/replication/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterReplicationSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSDNController Delete sdn controller object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSDNController(string controller, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSDNControllerWithHttpInfo(controller);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSDNController Delete sdn controller object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSDNControllerWithHttpInfo(string controller, int operationIndex = 0)
        {
            // verify the required parameter 'controller' is set
            if (controller == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'controller' when calling ProxmoxGeneratedApi->DeleteClusterSDNController");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("controller", ProxmoxSharp.Client.ClientUtils.ParameterToString(controller)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSDNController";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/controllers/{controller}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSDNController", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSDNController Delete sdn controller object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSDNControllerAsync(string controller, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSDNControllerWithHttpInfoAsync(controller, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSDNController Delete sdn controller object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSDNControllerWithHttpInfoAsync(string controller, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'controller' is set
            if (controller == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'controller' when calling ProxmoxGeneratedApi->DeleteClusterSDNController");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("controller", ProxmoxSharp.Client.ClientUtils.ParameterToString(controller)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSDNController";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/controllers/{controller}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSDNController", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSDNVnet Delete sdn vnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSDNVnet(string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSDNVnetWithHttpInfo(vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSDNVnet Delete sdn vnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSDNVnetWithHttpInfo(string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->DeleteClusterSDNVnet");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSDNVnet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSDNVnet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSDNVnet Delete sdn vnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSDNVnetAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSDNVnetWithHttpInfoAsync(vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSDNVnet Delete sdn vnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSDNVnetWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->DeleteClusterSDNVnet");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSDNVnet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSDNVnet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSDNZone Delete sdn zone object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSDNZone(string zone, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSDNZoneWithHttpInfo(zone);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSDNZone Delete sdn zone object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSDNZoneWithHttpInfo(string zone, int operationIndex = 0)
        {
            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->DeleteClusterSDNZone");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/zones/{zone}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSDNZone Delete sdn zone object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSDNZoneAsync(string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSDNZoneWithHttpInfoAsync(zone, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSDNZone Delete sdn zone object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSDNZoneWithHttpInfoAsync(string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->DeleteClusterSDNZone");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/zones/{zone}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnDnsSingle Delete sdn dns object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSdnDnsSingle(string dns, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSdnDnsSingleWithHttpInfo(dns);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnDnsSingle Delete sdn dns object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnDnsSingleWithHttpInfo(string dns, int operationIndex = 0)
        {
            // verify the required parameter 'dns' is set
            if (dns == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'dns' when calling ProxmoxGeneratedApi->DeleteClusterSdnDnsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("dns", ProxmoxSharp.Client.ClientUtils.ParameterToString(dns)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnDnsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/dns/{dns}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnDnsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnDnsSingle Delete sdn dns object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnDnsSingleAsync(string dns, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSdnDnsSingleWithHttpInfoAsync(dns, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnDnsSingle Delete sdn dns object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnDnsSingleWithHttpInfoAsync(string dns, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'dns' is set
            if (dns == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'dns' when calling ProxmoxGeneratedApi->DeleteClusterSdnDnsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("dns", ProxmoxSharp.Client.ClientUtils.ParameterToString(dns)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnDnsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/dns/{dns}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnDnsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnFabricsFabricSingle Add a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSdnFabricsFabricSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSdnFabricsFabricSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnFabricsFabricSingle Add a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnFabricsFabricSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterSdnFabricsFabricSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnFabricsFabricSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/fabrics/fabric/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnFabricsFabricSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnFabricsFabricSingle Add a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnFabricsFabricSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSdnFabricsFabricSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnFabricsFabricSingle Add a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnFabricsFabricSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteClusterSdnFabricsFabricSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnFabricsFabricSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/fabrics/fabric/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnFabricsFabricSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnFabricsNodeSingleSingle Add a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSdnFabricsNodeSingleSingle(string fabricId, string nodeId, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSdnFabricsNodeSingleSingleWithHttpInfo(fabricId, nodeId);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnFabricsNodeSingleSingle Add a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnFabricsNodeSingleSingleWithHttpInfo(string fabricId, string nodeId, int operationIndex = 0)
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->DeleteClusterSdnFabricsNodeSingleSingle");
            }

            // verify the required parameter 'nodeId' is set
            if (nodeId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'nodeId' when calling ProxmoxGeneratedApi->DeleteClusterSdnFabricsNodeSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter
            localVarRequestOptions.PathParameters.Add("node_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(nodeId)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnFabricsNodeSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/fabrics/node/{fabric_id}/{node_id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnFabricsNodeSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnFabricsNodeSingleSingle Add a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnFabricsNodeSingleSingleAsync(string fabricId, string nodeId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(fabricId, nodeId, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnFabricsNodeSingleSingle Add a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(string fabricId, string nodeId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->DeleteClusterSdnFabricsNodeSingleSingle");
            }

            // verify the required parameter 'nodeId' is set
            if (nodeId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'nodeId' when calling ProxmoxGeneratedApi->DeleteClusterSdnFabricsNodeSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter
            localVarRequestOptions.PathParameters.Add("node_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(nodeId)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnFabricsNodeSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/fabrics/node/{fabric_id}/{node_id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnFabricsNodeSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnIpamsSingle Delete sdn ipam object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSdnIpamsSingle(string ipam, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSdnIpamsSingleWithHttpInfo(ipam);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnIpamsSingle Delete sdn ipam object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnIpamsSingleWithHttpInfo(string ipam, int operationIndex = 0)
        {
            // verify the required parameter 'ipam' is set
            if (ipam == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'ipam' when calling ProxmoxGeneratedApi->DeleteClusterSdnIpamsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("ipam", ProxmoxSharp.Client.ClientUtils.ParameterToString(ipam)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnIpamsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/ipams/{ipam}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnIpamsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnIpamsSingle Delete sdn ipam object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnIpamsSingleAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSdnIpamsSingleWithHttpInfoAsync(ipam, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnIpamsSingle Delete sdn ipam object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnIpamsSingleWithHttpInfoAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'ipam' is set
            if (ipam == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'ipam' when calling ProxmoxGeneratedApi->DeleteClusterSdnIpamsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("ipam", ProxmoxSharp.Client.ClientUtils.ParameterToString(ipam)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnIpamsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/ipams/{ipam}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnIpamsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnLock Release global lock for SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSdnLock(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSdnLockWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnLock Release global lock for SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnLockWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnLock";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/lock", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnLock", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnLock Release global lock for SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnLockAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSdnLockWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnLock Release global lock for SDN configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnLockWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnLock";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/lock", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnLock", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleFirewallRulesSingle Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSdnVnetsSingleFirewallRulesSingle(int pos, string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(pos, vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleFirewallRulesSingle Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(int pos, string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->DeleteClusterSdnVnetsSingleFirewallRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnVnetsSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnVnetsSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleFirewallRulesSingle Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleFirewallRulesSingleAsync(int pos, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(pos, vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleFirewallRulesSingle Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(int pos, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->DeleteClusterSdnVnetsSingleFirewallRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnVnetsSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnVnetsSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleIps Delete IP Mappings in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSdnVnetsSingleIps(string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSdnVnetsSingleIpsWithHttpInfo(vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleIps Delete IP Mappings in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleIpsWithHttpInfo(string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->DeleteClusterSdnVnetsSingleIps");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnVnetsSingleIps";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/ips", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnVnetsSingleIps", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleIps Delete IP Mappings in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleIpsAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSdnVnetsSingleIpsWithHttpInfoAsync(vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleIps Delete IP Mappings in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnVnetsSingleIpsWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->DeleteClusterSdnVnetsSingleIps");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnVnetsSingleIps";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/ips", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnVnetsSingleIps", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleSubnetsSingle Delete sdn subnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteClusterSdnVnetsSingleSubnetsSingle(string subnet, string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(subnet, vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleSubnetsSingle Delete sdn subnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(string subnet, string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'subnet' is set
            if (subnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'subnet' when calling ProxmoxGeneratedApi->DeleteClusterSdnVnetsSingleSubnetsSingle");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->DeleteClusterSdnVnetsSingleSubnetsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("subnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(subnet)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnVnetsSingleSubnetsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/subnets/{subnet}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnVnetsSingleSubnetsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleSubnetsSingle Delete sdn subnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteClusterSdnVnetsSingleSubnetsSingleAsync(string subnet, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(subnet, vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteClusterSdnVnetsSingleSubnetsSingle Delete sdn subnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(string subnet, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'subnet' is set
            if (subnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'subnet' when calling ProxmoxGeneratedApi->DeleteClusterSdnVnetsSingleSubnetsSingle");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->DeleteClusterSdnVnetsSingleSubnetsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("subnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(subnet)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteClusterSdnVnetsSingleSubnetsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/subnets/{subnet}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClusterSdnVnetsSingleSubnetsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodeFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodeFirewallRule(string node, int pos, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodeFirewallRuleWithHttpInfo(node, pos);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodeFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodeFirewallRuleWithHttpInfo(string node, int pos, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodeFirewallRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodeFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodeFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodeFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodeFirewallRuleAsync(string node, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodeFirewallRuleWithHttpInfoAsync(node, pos, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodeFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodeFirewallRuleWithHttpInfoAsync(string node, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodeFirewallRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodeFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodeFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephMdsSingle Destroy Ceph Metadata Server
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleCephMdsSingle(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleCephMdsSingleWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephMdsSingle Destroy Ceph Metadata Server
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephMdsSingleWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMdsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMdsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephMdsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/ceph/mds/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephMdsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephMdsSingle Destroy Ceph Metadata Server
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephMdsSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleCephMdsSingleWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephMdsSingle Destroy Ceph Metadata Server
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephMdsSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMdsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMdsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephMdsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/mds/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephMdsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephMgrSingle Destroy Ceph Manager.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleCephMgrSingle(string id, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleCephMgrSingleWithHttpInfo(id, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephMgrSingle Destroy Ceph Manager.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephMgrSingleWithHttpInfo(string id, string node, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMgrSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMgrSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephMgrSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/ceph/mgr/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephMgrSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephMgrSingle Destroy Ceph Manager.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephMgrSingleAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleCephMgrSingleWithHttpInfoAsync(id, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephMgrSingle Destroy Ceph Manager.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephMgrSingleWithHttpInfoAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMgrSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMgrSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephMgrSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/mgr/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephMgrSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephMonSingle Destroy Ceph Monitor and Manager.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleCephMonSingle(string monid, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleCephMonSingleWithHttpInfo(monid, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephMonSingle Destroy Ceph Monitor and Manager.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephMonSingleWithHttpInfo(string monid, string node, int operationIndex = 0)
        {
            // verify the required parameter 'monid' is set
            if (monid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'monid' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMonSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMonSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("monid", ProxmoxSharp.Client.ClientUtils.ParameterToString(monid)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephMonSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/ceph/mon/{monid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephMonSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephMonSingle Destroy Ceph Monitor and Manager.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephMonSingleAsync(string monid, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleCephMonSingleWithHttpInfoAsync(monid, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephMonSingle Destroy Ceph Monitor and Manager.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="monid">monid</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephMonSingleWithHttpInfoAsync(string monid, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'monid' is set
            if (monid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'monid' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMonSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephMonSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("monid", ProxmoxSharp.Client.ClientUtils.ParameterToString(monid)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephMonSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/mon/{monid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephMonSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephOsdSingle Destroy OSD
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleCephOsdSingle(string node, int osdid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleCephOsdSingleWithHttpInfo(node, osdid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephOsdSingle Destroy OSD
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephOsdSingleWithHttpInfo(string node, int osdid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephOsdSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephOsdSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd/{osdid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephOsdSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephOsdSingle Destroy OSD
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephOsdSingleAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleCephOsdSingleWithHttpInfoAsync(node, osdid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephOsdSingle Destroy OSD
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephOsdSingleWithHttpInfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephOsdSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephOsdSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/osd/{osdid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephOsdSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephPoolSingle Destroy pool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleCephPoolSingle(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleCephPoolSingleWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephPoolSingle Destroy pool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCephPoolSingleWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephPoolSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephPoolSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephPoolSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/ceph/pool/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephPoolSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCephPoolSingle Destroy pool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCephPoolSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleCephPoolSingleWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCephPoolSingle Destroy pool
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCephPoolSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephPoolSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCephPoolSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCephPoolSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/pool/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCephPoolSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCertificatesAcmeCertificate Revoke existing certificate from CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleCertificatesAcmeCertificate(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleCertificatesAcmeCertificateWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCertificatesAcmeCertificate Revoke existing certificate from CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCertificatesAcmeCertificateWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCertificatesAcmeCertificate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCertificatesAcmeCertificate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/certificates/acme/certificate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCertificatesAcmeCertificate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCertificatesAcmeCertificate Revoke existing certificate from CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCertificatesAcmeCertificateAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCertificatesAcmeCertificate Revoke existing certificate from CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCertificatesAcmeCertificate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCertificatesAcmeCertificate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/certificates/acme/certificate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCertificatesAcmeCertificate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCertificatesCustom DELETE custom certificate chain and key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleCertificatesCustom(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleCertificatesCustomWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCertificatesCustom DELETE custom certificate chain and key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleCertificatesCustomWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCertificatesCustom");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCertificatesCustom";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/certificates/custom", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCertificatesCustom", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleCertificatesCustom DELETE custom certificate chain and key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleCertificatesCustomAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleCertificatesCustomWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleCertificatesCustom DELETE custom certificate chain and key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleCertificatesCustomWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleCertificatesCustom");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleCertificatesCustom";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/certificates/custom", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleCertificatesCustom", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleDisksDirectorySingle Unmounts the storage and removes the mount unit.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleDisksDirectorySingle(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleDisksDirectorySingleWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleDisksDirectorySingle Unmounts the storage and removes the mount unit.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleDisksDirectorySingleWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksDirectorySingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksDirectorySingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleDisksDirectorySingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/disks/directory/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleDisksDirectorySingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleDisksDirectorySingle Unmounts the storage and removes the mount unit.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleDisksDirectorySingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleDisksDirectorySingleWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleDisksDirectorySingle Unmounts the storage and removes the mount unit.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleDisksDirectorySingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksDirectorySingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksDirectorySingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleDisksDirectorySingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/directory/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleDisksDirectorySingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleDisksLvmSingle Remove an LVM Volume Group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleDisksLvmSingle(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleDisksLvmSingleWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleDisksLvmSingle Remove an LVM Volume Group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleDisksLvmSingleWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksLvmSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksLvmSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleDisksLvmSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/disks/lvm/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleDisksLvmSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleDisksLvmSingle Remove an LVM Volume Group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleDisksLvmSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleDisksLvmSingleWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleDisksLvmSingle Remove an LVM Volume Group.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleDisksLvmSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksLvmSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksLvmSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleDisksLvmSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/lvm/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleDisksLvmSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleDisksLvmthinSingle Remove an LVM thin pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleDisksLvmthinSingle(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleDisksLvmthinSingleWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleDisksLvmthinSingle Remove an LVM thin pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleDisksLvmthinSingleWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksLvmthinSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksLvmthinSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleDisksLvmthinSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/disks/lvmthin/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleDisksLvmthinSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleDisksLvmthinSingle Remove an LVM thin pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleDisksLvmthinSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleDisksLvmthinSingleWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleDisksLvmthinSingle Remove an LVM thin pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleDisksLvmthinSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksLvmthinSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksLvmthinSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleDisksLvmthinSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/lvmthin/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleDisksLvmthinSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleDisksZfsSingle Destroy a ZFS pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleDisksZfsSingle(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleDisksZfsSingleWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleDisksZfsSingle Destroy a ZFS pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleDisksZfsSingleWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksZfsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksZfsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleDisksZfsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/disks/zfs/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleDisksZfsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleDisksZfsSingle Destroy a ZFS pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleDisksZfsSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleDisksZfsSingleWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleDisksZfsSingle Destroy a ZFS pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleDisksZfsSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksZfsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleDisksZfsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleDisksZfsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/zfs/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleDisksZfsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingle Destroy the container (also delete all uses files).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleLxcSingle(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleLxcSingleWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingle Destroy the container (also delete all uses files).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingle Destroy the container (also delete all uses files).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleLxcSingleWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingle Destroy the container (also delete all uses files).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleLxcSingleFirewallAliasesSingle(string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallAliasesSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingle Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleLxcSingleFirewallIpsetSingle(string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingle Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleFirewallIpsetSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleFirewallIpsetSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingle Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallIpsetSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingle Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleFirewallIpsetSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleFirewallIpsetSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingleSingle Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle(string cidr, string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(cidr, name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingleSingle Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(string cidr, string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingleSingle Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(cidr, name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallIpsetSingleSingle Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleFirewallIpsetSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallRulesSingle Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleLxcSingleFirewallRulesSingle(string node, int pos, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(node, pos, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallRulesSingle Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(string node, int pos, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallRulesSingle Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleLxcSingleFirewallRulesSingleAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(node, pos, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleFirewallRulesSingle Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleFirewallRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleSnapshotSingle Delete a LXC snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response DeleteNodesSingleLxcSingleSnapshotSingle(string node, string snapname, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = DeleteNodesSingleLxcSingleSnapshotSingleWithHttpInfo(node, snapname, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleSnapshotSingle Delete a LXC snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> DeleteNodesSingleLxcSingleSnapshotSingleWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleSnapshotSingle");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleSnapshotSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleSnapshotSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleSnapshotSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleSnapshotSingle Delete a LXC snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> DeleteNodesSingleLxcSingleSnapshotSingleAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await DeleteNodesSingleLxcSingleSnapshotSingleWithHttpInfoAsync(node, snapname, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleLxcSingleSnapshotSingle Delete a LXC snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> DeleteNodesSingleLxcSingleSnapshotSingleWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleSnapshotSingle");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->DeleteNodesSingleLxcSingleSnapshotSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleLxcSingleSnapshotSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleLxcSingleSnapshotSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleNetwork Revert network configuration changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleNetwork(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleNetworkWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleNetwork Revert network configuration changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleNetworkWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleNetwork");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleNetwork";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/network", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleNetwork", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleNetwork Revert network configuration changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleNetworkAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleNetworkWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleNetwork Revert network configuration changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleNetworkWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleNetwork");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleNetwork";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/network", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleNetwork", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleNetworkSingle Delete network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleNetworkSingle(string iface, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleNetworkSingleWithHttpInfo(iface, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleNetworkSingle Delete network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleNetworkSingleWithHttpInfo(string iface, string node, int operationIndex = 0)
        {
            // verify the required parameter 'iface' is set
            if (iface == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'iface' when calling ProxmoxGeneratedApi->DeleteNodesSingleNetworkSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleNetworkSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("iface", ProxmoxSharp.Client.ClientUtils.ParameterToString(iface)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleNetworkSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/network/{iface}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleNetworkSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleNetworkSingle Delete network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleNetworkSingleAsync(string iface, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleNetworkSingleWithHttpInfoAsync(iface, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleNetworkSingle Delete network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleNetworkSingleWithHttpInfoAsync(string iface, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'iface' is set
            if (iface == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'iface' when calling ProxmoxGeneratedApi->DeleteNodesSingleNetworkSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleNetworkSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("iface", ProxmoxSharp.Client.ClientUtils.ParameterToString(iface)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleNetworkSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/network/{iface}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleNetworkSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleQemuSingleFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleQemuSingleFirewallAliasesSingle(string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleQemuSingleFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleQemuSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleQemuSingleFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleQemuSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleQemuSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleQemuSingleFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleQemuSingleFirewallAliasesSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleQemuSingleFirewallAliasesSingle Remove IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteNodesSingleQemuSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleQemuSingleFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleQemuSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleQemuSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleStorageSingleContentSingle Delete volume
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleStorageSingleContentSingle(string node, string storage, string volume, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleStorageSingleContentSingleWithHttpInfo(node, storage, volume);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleStorageSingleContentSingle Delete volume
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleStorageSingleContentSingleWithHttpInfo(string node, string storage, string volume, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'volume' is set
            if (volume == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'volume' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSingleContentSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.PathParameters.Add("volume", ProxmoxSharp.Client.ClientUtils.ParameterToString(volume)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleStorageSingleContentSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/content/{volume}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleStorageSingleContentSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleStorageSingleContentSingle Delete volume
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleStorageSingleContentSingleAsync(string node, string storage, string volume, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleStorageSingleContentSingleWithHttpInfoAsync(node, storage, volume, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleStorageSingleContentSingle Delete volume
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleStorageSingleContentSingleWithHttpInfoAsync(string node, string storage, string volume, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'volume' is set
            if (volume == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'volume' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSingleContentSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.PathParameters.Add("volume", ProxmoxSharp.Client.ClientUtils.ParameterToString(volume)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleStorageSingleContentSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/content/{volume}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleStorageSingleContentSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleStorageSinglePrunebackups Prune backups. Only those using the standard naming scheme are considered.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleStorageSinglePrunebackups(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleStorageSinglePrunebackupsWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleStorageSinglePrunebackups Prune backups. Only those using the standard naming scheme are considered.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleStorageSinglePrunebackupsWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSinglePrunebackups");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSinglePrunebackups");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleStorageSinglePrunebackups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/prunebackups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleStorageSinglePrunebackups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleStorageSinglePrunebackups Prune backups. Only those using the standard naming scheme are considered.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleStorageSinglePrunebackupsAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleStorageSinglePrunebackupsWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleStorageSinglePrunebackups Prune backups. Only those using the standard naming scheme are considered.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleStorageSinglePrunebackupsWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSinglePrunebackups");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->DeleteNodesSingleStorageSinglePrunebackups");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleStorageSinglePrunebackups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/prunebackups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleStorageSinglePrunebackups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleSubscription Delete subscription key of this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteNodesSingleSubscription(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteNodesSingleSubscriptionWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleSubscription Delete subscription key of this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteNodesSingleSubscriptionWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleSubscription");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleSubscription";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/subscription", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleSubscription", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteNodesSingleSubscription Delete subscription key of this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteNodesSingleSubscriptionAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteNodesSingleSubscriptionWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteNodesSingleSubscription Delete subscription key of this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteNodesSingleSubscriptionWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteNodesSingleSubscription");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteNodesSingleSubscription";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/subscription", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteNodesSingleSubscription", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deletePool Delete pool (deprecated, no support for nested pools, use &#39;DELETE /pools/?poolid&#x3D;{poolid}&#39;).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeletePool(string poolid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeletePoolWithHttpInfo(poolid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deletePool Delete pool (deprecated, no support for nested pools, use &#39;DELETE /pools/?poolid&#x3D;{poolid}&#39;).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeletePoolWithHttpInfo(string poolid, int operationIndex = 0)
        {
            // verify the required parameter 'poolid' is set
            if (poolid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'poolid' when calling ProxmoxGeneratedApi->DeletePool");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("poolid", ProxmoxSharp.Client.ClientUtils.ParameterToString(poolid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeletePool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/pools/{poolid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeletePool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deletePool Delete pool (deprecated, no support for nested pools, use &#39;DELETE /pools/?poolid&#x3D;{poolid}&#39;).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeletePoolAsync(string poolid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeletePoolWithHttpInfoAsync(poolid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deletePool Delete pool (deprecated, no support for nested pools, use &#39;DELETE /pools/?poolid&#x3D;{poolid}&#39;).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeletePoolWithHttpInfoAsync(string poolid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'poolid' is set
            if (poolid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'poolid' when calling ProxmoxGeneratedApi->DeletePool");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("poolid", ProxmoxSharp.Client.ClientUtils.ParameterToString(poolid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeletePool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/pools/{poolid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeletePool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deletePools Delete pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeletePools(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeletePoolsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// deletePools Delete pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeletePoolsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeletePools";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/pools", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeletePools", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deletePools Delete pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeletePoolsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeletePoolsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deletePools Delete pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeletePoolsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeletePools";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/pools", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeletePools", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteStorageSingle Delete storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteStorageSingle(string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteStorageSingleWithHttpInfo(storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteStorageSingle Delete storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteStorageSingleWithHttpInfo(string storage, int operationIndex = 0)
        {
            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->DeleteStorageSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteStorageSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/storage/{storage}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteStorageSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteStorageSingle Delete storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteStorageSingleAsync(string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteStorageSingleWithHttpInfoAsync(storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteStorageSingle Delete storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteStorageSingleWithHttpInfoAsync(string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->DeleteStorageSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteStorageSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/storage/{storage}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteStorageSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteVM Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteVM(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteVMWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteVM Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteVMWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteVM Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteVMAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteVMWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteVM Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteVMWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteVMFirewallIPSet Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteVMFirewallIPSet(string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteVMFirewallIPSetWithHttpInfo(name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteVMFirewallIPSet Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteVMFirewallIPSetWithHttpInfo(string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteVMFirewallIPSet");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteVMFirewallIPSet");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteVMFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteVMFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteVMFirewallIPSet Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteVMFirewallIPSetAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteVMFirewallIPSetWithHttpInfoAsync(name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteVMFirewallIPSet Delete IPSet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteVMFirewallIPSetWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->DeleteVMFirewallIPSet");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteVMFirewallIPSet");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteVMFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteVMFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteVMFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response DeleteVMFirewallRule(string node, int pos, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = DeleteVMFirewallRuleWithHttpInfo(node, pos, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteVMFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> DeleteVMFirewallRuleWithHttpInfo(string node, int pos, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteVMFirewallRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteVMFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteVMFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteVMFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> DeleteVMFirewallRuleAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await DeleteVMFirewallRuleWithHttpInfoAsync(node, pos, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteVMFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> DeleteVMFirewallRuleWithHttpInfoAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteVMFirewallRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteVMFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteVMFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteVMSnapshot Delete a VM snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response DeleteVMSnapshot(string node, string snapname, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = DeleteVMSnapshotWithHttpInfo(node, snapname, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteVMSnapshot Delete a VM snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> DeleteVMSnapshotWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteVMSnapshot");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->DeleteVMSnapshot");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteVMSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteVMSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// deleteVMSnapshot Delete a VM snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> DeleteVMSnapshotAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await DeleteVMSnapshotWithHttpInfoAsync(node, snapname, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// deleteVMSnapshot Delete a VM snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> DeleteVMSnapshotWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->DeleteVMSnapshot");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->DeleteVMSnapshot");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.DeleteVMSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteVMSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccess Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetAccess(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetAccessWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccess Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetAccessWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccess";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/access", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccess", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccess Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetAccessAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetAccessWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccess Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetAccessWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccess";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/access", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccess", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessAcl Get Access Control List (ACLs).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessAcl200Response</returns>
        public GetAccessAcl200Response GetAccessAcl(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessAcl200Response> localVarResponse = GetAccessAclWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessAcl Get Access Control List (ACLs).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessAcl200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessAcl200Response> GetAccessAclWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessAcl";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessAcl200Response>("/access/acl", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessAcl", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessAcl Get Access Control List (ACLs).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessAcl200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessAcl200Response> GetAccessAclAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessAcl200Response> localVarResponse = await GetAccessAclWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessAcl Get Access Control List (ACLs).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessAcl200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessAcl200Response>> GetAccessAclWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessAcl";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessAcl200Response>("/access/acl", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessAcl", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessDomains Authentication domain index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessDomains200Response</returns>
        public GetAccessDomains200Response GetAccessDomains(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessDomains200Response> localVarResponse = GetAccessDomainsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessDomains Authentication domain index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessDomains200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessDomains200Response> GetAccessDomainsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessDomains";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessDomains200Response>("/access/domains", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessDomains", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessDomains Authentication domain index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessDomains200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessDomains200Response> GetAccessDomainsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessDomains200Response> localVarResponse = await GetAccessDomainsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessDomains Authentication domain index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessDomains200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessDomains200Response>> GetAccessDomainsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessDomains";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessDomains200Response>("/access/domains", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessDomains", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessDomainsSingle Get auth server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetAccessDomainsSingle(string realm, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetAccessDomainsSingleWithHttpInfo(realm);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessDomainsSingle Get auth server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetAccessDomainsSingleWithHttpInfo(string realm, int operationIndex = 0)
        {
            // verify the required parameter 'realm' is set
            if (realm == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'realm' when calling ProxmoxGeneratedApi->GetAccessDomainsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("realm", ProxmoxSharp.Client.ClientUtils.ParameterToString(realm)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessDomainsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/access/domains/{realm}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessDomainsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessDomainsSingle Get auth server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetAccessDomainsSingleAsync(string realm, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetAccessDomainsSingleWithHttpInfoAsync(realm, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessDomainsSingle Get auth server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetAccessDomainsSingleWithHttpInfoAsync(string realm, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'realm' is set
            if (realm == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'realm' when calling ProxmoxGeneratedApi->GetAccessDomainsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("realm", ProxmoxSharp.Client.ClientUtils.ParameterToString(realm)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessDomainsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/access/domains/{realm}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessDomainsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessGroups Group index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessGroups200Response</returns>
        public GetAccessGroups200Response GetAccessGroups(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessGroups200Response> localVarResponse = GetAccessGroupsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessGroups Group index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessGroups200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessGroups200Response> GetAccessGroupsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessGroups200Response>("/access/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessGroups Group index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessGroups200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessGroups200Response> GetAccessGroupsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessGroups200Response> localVarResponse = await GetAccessGroupsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessGroups Group index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessGroups200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessGroups200Response>> GetAccessGroupsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessGroups200Response>("/access/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessGroupsSingle Get group configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessGroupsSingle200Response</returns>
        public GetAccessGroupsSingle200Response GetAccessGroupsSingle(string groupid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessGroupsSingle200Response> localVarResponse = GetAccessGroupsSingleWithHttpInfo(groupid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessGroupsSingle Get group configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessGroupsSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessGroupsSingle200Response> GetAccessGroupsSingleWithHttpInfo(string groupid, int operationIndex = 0)
        {
            // verify the required parameter 'groupid' is set
            if (groupid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'groupid' when calling ProxmoxGeneratedApi->GetAccessGroupsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("groupid", ProxmoxSharp.Client.ClientUtils.ParameterToString(groupid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessGroupsSingle200Response>("/access/groups/{groupid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessGroupsSingle Get group configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessGroupsSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessGroupsSingle200Response> GetAccessGroupsSingleAsync(string groupid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessGroupsSingle200Response> localVarResponse = await GetAccessGroupsSingleWithHttpInfoAsync(groupid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessGroupsSingle Get group configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessGroupsSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessGroupsSingle200Response>> GetAccessGroupsSingleWithHttpInfoAsync(string groupid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'groupid' is set
            if (groupid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'groupid' when calling ProxmoxGeneratedApi->GetAccessGroupsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("groupid", ProxmoxSharp.Client.ClientUtils.ParameterToString(groupid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessGroupsSingle200Response>("/access/groups/{groupid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessOpenid Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetAccessOpenid(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetAccessOpenidWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessOpenid Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetAccessOpenidWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessOpenid";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/access/openid", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessOpenid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessOpenid Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetAccessOpenidAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetAccessOpenidWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessOpenid Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetAccessOpenidWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessOpenid";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/access/openid", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessOpenid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessPermissions Retrieve effective permissions of given user/token.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessPermissions200Response</returns>
        public GetAccessPermissions200Response GetAccessPermissions(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessPermissions200Response> localVarResponse = GetAccessPermissionsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessPermissions Retrieve effective permissions of given user/token.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessPermissions200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessPermissions200Response> GetAccessPermissionsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessPermissions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessPermissions200Response>("/access/permissions", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessPermissions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessPermissions Retrieve effective permissions of given user/token.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessPermissions200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessPermissions200Response> GetAccessPermissionsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessPermissions200Response> localVarResponse = await GetAccessPermissionsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessPermissions Retrieve effective permissions of given user/token.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessPermissions200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessPermissions200Response>> GetAccessPermissionsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessPermissions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessPermissions200Response>("/access/permissions", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessPermissions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessRoles Role index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessRoles200Response</returns>
        public GetAccessRoles200Response GetAccessRoles(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessRoles200Response> localVarResponse = GetAccessRolesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessRoles Role index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessRoles200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessRoles200Response> GetAccessRolesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessRoles";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessRoles200Response>("/access/roles", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessRoles", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessRoles Role index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessRoles200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessRoles200Response> GetAccessRolesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessRoles200Response> localVarResponse = await GetAccessRolesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessRoles Role index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessRoles200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessRoles200Response>> GetAccessRolesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessRoles";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessRoles200Response>("/access/roles", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessRoles", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessRolesSingle Get role configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessRolesSingle200Response</returns>
        public GetAccessRolesSingle200Response GetAccessRolesSingle(string roleid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessRolesSingle200Response> localVarResponse = GetAccessRolesSingleWithHttpInfo(roleid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessRolesSingle Get role configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessRolesSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessRolesSingle200Response> GetAccessRolesSingleWithHttpInfo(string roleid, int operationIndex = 0)
        {
            // verify the required parameter 'roleid' is set
            if (roleid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'roleid' when calling ProxmoxGeneratedApi->GetAccessRolesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("roleid", ProxmoxSharp.Client.ClientUtils.ParameterToString(roleid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessRolesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessRolesSingle200Response>("/access/roles/{roleid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessRolesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessRolesSingle Get role configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessRolesSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessRolesSingle200Response> GetAccessRolesSingleAsync(string roleid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessRolesSingle200Response> localVarResponse = await GetAccessRolesSingleWithHttpInfoAsync(roleid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessRolesSingle Get role configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessRolesSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessRolesSingle200Response>> GetAccessRolesSingleWithHttpInfoAsync(string roleid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'roleid' is set
            if (roleid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'roleid' when calling ProxmoxGeneratedApi->GetAccessRolesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("roleid", ProxmoxSharp.Client.ClientUtils.ParameterToString(roleid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessRolesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessRolesSingle200Response>("/access/roles/{roleid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessRolesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessTfa List TFA configurations of users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessTfa200Response</returns>
        public GetAccessTfa200Response GetAccessTfa(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessTfa200Response> localVarResponse = GetAccessTfaWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessTfa List TFA configurations of users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessTfa200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessTfa200Response> GetAccessTfaWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessTfa";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessTfa200Response>("/access/tfa", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessTfa", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessTfa List TFA configurations of users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessTfa200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessTfa200Response> GetAccessTfaAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessTfa200Response> localVarResponse = await GetAccessTfaWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessTfa List TFA configurations of users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessTfa200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessTfa200Response>> GetAccessTfaWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessTfa";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessTfa200Response>("/access/tfa", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessTfa", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessTfaSingle List TFA configurations of users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessTfaSingle200Response</returns>
        public GetAccessTfaSingle200Response GetAccessTfaSingle(string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessTfaSingle200Response> localVarResponse = GetAccessTfaSingleWithHttpInfo(userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessTfaSingle List TFA configurations of users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessTfaSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessTfaSingle200Response> GetAccessTfaSingleWithHttpInfo(string userid, int operationIndex = 0)
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessTfaSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessTfaSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessTfaSingle200Response>("/access/tfa/{userid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessTfaSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessTfaSingle List TFA configurations of users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessTfaSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessTfaSingle200Response> GetAccessTfaSingleAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessTfaSingle200Response> localVarResponse = await GetAccessTfaSingleWithHttpInfoAsync(userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessTfaSingle List TFA configurations of users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessTfaSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessTfaSingle200Response>> GetAccessTfaSingleWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessTfaSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessTfaSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessTfaSingle200Response>("/access/tfa/{userid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessTfaSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessTfaSingleSingle Fetch a requested TFA entry if present.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessTfaSingleSingle200Response</returns>
        public GetAccessTfaSingleSingle200Response GetAccessTfaSingleSingle(string id, string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessTfaSingleSingle200Response> localVarResponse = GetAccessTfaSingleSingleWithHttpInfo(id, userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessTfaSingleSingle Fetch a requested TFA entry if present.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessTfaSingleSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessTfaSingleSingle200Response> GetAccessTfaSingleSingleWithHttpInfo(string id, string userid, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetAccessTfaSingleSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessTfaSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessTfaSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessTfaSingleSingle200Response>("/access/tfa/{userid}/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessTfaSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessTfaSingleSingle Fetch a requested TFA entry if present.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessTfaSingleSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessTfaSingleSingle200Response> GetAccessTfaSingleSingleAsync(string id, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessTfaSingleSingle200Response> localVarResponse = await GetAccessTfaSingleSingleWithHttpInfoAsync(id, userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessTfaSingleSingle Fetch a requested TFA entry if present.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessTfaSingleSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessTfaSingleSingle200Response>> GetAccessTfaSingleSingleWithHttpInfoAsync(string id, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetAccessTfaSingleSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessTfaSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessTfaSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessTfaSingleSingle200Response>("/access/tfa/{userid}/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessTfaSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessTicket Dummy. Useful for formatters which want to provide a login page.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetAccessTicket(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetAccessTicketWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessTicket Dummy. Useful for formatters which want to provide a login page.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetAccessTicketWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessTicket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/access/ticket", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessTicket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessTicket Dummy. Useful for formatters which want to provide a login page.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetAccessTicketAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetAccessTicketWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessTicket Dummy. Useful for formatters which want to provide a login page.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetAccessTicketWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessTicket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/access/ticket", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessTicket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsers User index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsers200Response</returns>
        public GetAccessUsers200Response GetAccessUsers(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsers200Response> localVarResponse = GetAccessUsersWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsers User index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsers200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessUsers200Response> GetAccessUsersWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessUsers200Response>("/access/users", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsers User index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsers200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessUsers200Response> GetAccessUsersAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsers200Response> localVarResponse = await GetAccessUsersWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsers User index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsers200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessUsers200Response>> GetAccessUsersWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessUsers200Response>("/access/users", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsersSingle Get user configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsersSingle200Response</returns>
        public GetAccessUsersSingle200Response GetAccessUsersSingle(string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingle200Response> localVarResponse = GetAccessUsersSingleWithHttpInfo(userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsersSingle Get user configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsersSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingle200Response> GetAccessUsersSingleWithHttpInfo(string userid, int operationIndex = 0)
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessUsersSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessUsersSingle200Response>("/access/users/{userid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsersSingle Get user configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsersSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessUsersSingle200Response> GetAccessUsersSingleAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingle200Response> localVarResponse = await GetAccessUsersSingleWithHttpInfoAsync(userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsersSingle Get user configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsersSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingle200Response>> GetAccessUsersSingleWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessUsersSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessUsersSingle200Response>("/access/users/{userid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsersSingleTfa Get user TFA types (Personal and Realm).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsersSingleTfa200Response</returns>
        public GetAccessUsersSingleTfa200Response GetAccessUsersSingleTfa(string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleTfa200Response> localVarResponse = GetAccessUsersSingleTfaWithHttpInfo(userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsersSingleTfa Get user TFA types (Personal and Realm).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsersSingleTfa200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleTfa200Response> GetAccessUsersSingleTfaWithHttpInfo(string userid, int operationIndex = 0)
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessUsersSingleTfa");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsersSingleTfa";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessUsersSingleTfa200Response>("/access/users/{userid}/tfa", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsersSingleTfa", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsersSingleTfa Get user TFA types (Personal and Realm).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsersSingleTfa200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessUsersSingleTfa200Response> GetAccessUsersSingleTfaAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleTfa200Response> localVarResponse = await GetAccessUsersSingleTfaWithHttpInfoAsync(userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsersSingleTfa Get user TFA types (Personal and Realm).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsersSingleTfa200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleTfa200Response>> GetAccessUsersSingleTfaWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessUsersSingleTfa");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsersSingleTfa";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessUsersSingleTfa200Response>("/access/users/{userid}/tfa", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsersSingleTfa", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsersSingleToken Get user API tokens.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsersSingleToken200Response</returns>
        public GetAccessUsersSingleToken200Response GetAccessUsersSingleToken(string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleToken200Response> localVarResponse = GetAccessUsersSingleTokenWithHttpInfo(userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsersSingleToken Get user API tokens.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsersSingleToken200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleToken200Response> GetAccessUsersSingleTokenWithHttpInfo(string userid, int operationIndex = 0)
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessUsersSingleToken");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsersSingleToken";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessUsersSingleToken200Response>("/access/users/{userid}/token", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsersSingleToken", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsersSingleToken Get user API tokens.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsersSingleToken200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessUsersSingleToken200Response> GetAccessUsersSingleTokenAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleToken200Response> localVarResponse = await GetAccessUsersSingleTokenWithHttpInfoAsync(userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsersSingleToken Get user API tokens.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsersSingleToken200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleToken200Response>> GetAccessUsersSingleTokenWithHttpInfoAsync(string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessUsersSingleToken");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsersSingleToken";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessUsersSingleToken200Response>("/access/users/{userid}/token", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsersSingleToken", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsersSingleTokenSingle Get specific API token information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetAccessUsersSingleTokenSingle200Response</returns>
        public GetAccessUsersSingleTokenSingle200Response GetAccessUsersSingleTokenSingle(string tokenid, string userid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleTokenSingle200Response> localVarResponse = GetAccessUsersSingleTokenSingleWithHttpInfo(tokenid, userid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsersSingleTokenSingle Get specific API token information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetAccessUsersSingleTokenSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleTokenSingle200Response> GetAccessUsersSingleTokenSingleWithHttpInfo(string tokenid, string userid, int operationIndex = 0)
        {
            // verify the required parameter 'tokenid' is set
            if (tokenid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'tokenid' when calling ProxmoxGeneratedApi->GetAccessUsersSingleTokenSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessUsersSingleTokenSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tokenid", ProxmoxSharp.Client.ClientUtils.ParameterToString(tokenid)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsersSingleTokenSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetAccessUsersSingleTokenSingle200Response>("/access/users/{userid}/token/{tokenid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsersSingleTokenSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getAccessUsersSingleTokenSingle Get specific API token information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetAccessUsersSingleTokenSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetAccessUsersSingleTokenSingle200Response> GetAccessUsersSingleTokenSingleAsync(string tokenid, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleTokenSingle200Response> localVarResponse = await GetAccessUsersSingleTokenSingleWithHttpInfoAsync(tokenid, userid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getAccessUsersSingleTokenSingle Get specific API token information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetAccessUsersSingleTokenSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetAccessUsersSingleTokenSingle200Response>> GetAccessUsersSingleTokenSingleWithHttpInfoAsync(string tokenid, string userid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'tokenid' is set
            if (tokenid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'tokenid' when calling ProxmoxGeneratedApi->GetAccessUsersSingleTokenSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->GetAccessUsersSingleTokenSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tokenid", ProxmoxSharp.Client.ClientUtils.ParameterToString(tokenid)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetAccessUsersSingleTokenSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetAccessUsersSingleTokenSingle200Response>("/access/users/{userid}/token/{tokenid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetAccessUsersSingleTokenSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getCluster Cluster index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetCluster(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getCluster Cluster index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetCluster";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetCluster", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getCluster Cluster index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getCluster Cluster index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetCluster";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetCluster", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcme ACMEAccount index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterAcme(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterAcmeWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcme ACMEAccount index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterAcmeWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcme";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/acme", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcme", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcme ACMEAccount index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterAcmeAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterAcmeWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcme ACMEAccount index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterAcmeWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcme";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/acme", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcme", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeAccount ACMEAccount index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterAcmeAccount(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterAcmeAccountWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeAccount ACMEAccount index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterAcmeAccountWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeAccount";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/acme/account", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeAccount", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeAccount ACMEAccount index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterAcmeAccountAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterAcmeAccountWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeAccount ACMEAccount index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterAcmeAccountWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeAccount";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/acme/account", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeAccount", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeAccountSingle Return existing ACME account information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeAccountSingle200Response</returns>
        public GetClusterAcmeAccountSingle200Response GetClusterAcmeAccountSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeAccountSingle200Response> localVarResponse = GetClusterAcmeAccountSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeAccountSingle Return existing ACME account information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeAccountSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterAcmeAccountSingle200Response> GetClusterAcmeAccountSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterAcmeAccountSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeAccountSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterAcmeAccountSingle200Response>("/cluster/acme/account/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeAccountSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeAccountSingle Return existing ACME account information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeAccountSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterAcmeAccountSingle200Response> GetClusterAcmeAccountSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeAccountSingle200Response> localVarResponse = await GetClusterAcmeAccountSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeAccountSingle Return existing ACME account information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeAccountSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterAcmeAccountSingle200Response>> GetClusterAcmeAccountSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterAcmeAccountSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeAccountSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterAcmeAccountSingle200Response>("/cluster/acme/account/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeAccountSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeChallengeschema Get schema of ACME challenge types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeChallengeschema200Response</returns>
        public GetClusterAcmeChallengeschema200Response GetClusterAcmeChallengeschema(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeChallengeschema200Response> localVarResponse = GetClusterAcmeChallengeschemaWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeChallengeschema Get schema of ACME challenge types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeChallengeschema200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterAcmeChallengeschema200Response> GetClusterAcmeChallengeschemaWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeChallengeschema";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterAcmeChallengeschema200Response>("/cluster/acme/challenge-schema", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeChallengeschema", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeChallengeschema Get schema of ACME challenge types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeChallengeschema200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterAcmeChallengeschema200Response> GetClusterAcmeChallengeschemaAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeChallengeschema200Response> localVarResponse = await GetClusterAcmeChallengeschemaWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeChallengeschema Get schema of ACME challenge types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeChallengeschema200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterAcmeChallengeschema200Response>> GetClusterAcmeChallengeschemaWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeChallengeschema";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterAcmeChallengeschema200Response>("/cluster/acme/challenge-schema", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeChallengeschema", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeDirectories Get named known ACME directory endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeDirectories200Response</returns>
        public GetClusterAcmeDirectories200Response GetClusterAcmeDirectories(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeDirectories200Response> localVarResponse = GetClusterAcmeDirectoriesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeDirectories Get named known ACME directory endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeDirectories200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterAcmeDirectories200Response> GetClusterAcmeDirectoriesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeDirectories";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterAcmeDirectories200Response>("/cluster/acme/directories", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeDirectories", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeDirectories Get named known ACME directory endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeDirectories200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterAcmeDirectories200Response> GetClusterAcmeDirectoriesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeDirectories200Response> localVarResponse = await GetClusterAcmeDirectoriesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeDirectories Get named known ACME directory endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeDirectories200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterAcmeDirectories200Response>> GetClusterAcmeDirectoriesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeDirectories";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterAcmeDirectories200Response>("/cluster/acme/directories", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeDirectories", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeMeta Retrieve ACME Directory Meta Information
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeMeta200Response</returns>
        public GetClusterAcmeMeta200Response GetClusterAcmeMeta(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeMeta200Response> localVarResponse = GetClusterAcmeMetaWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeMeta Retrieve ACME Directory Meta Information
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeMeta200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterAcmeMeta200Response> GetClusterAcmeMetaWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeMeta";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterAcmeMeta200Response>("/cluster/acme/meta", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeMeta", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeMeta Retrieve ACME Directory Meta Information
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeMeta200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterAcmeMeta200Response> GetClusterAcmeMetaAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeMeta200Response> localVarResponse = await GetClusterAcmeMetaWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeMeta Retrieve ACME Directory Meta Information
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeMeta200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterAcmeMeta200Response>> GetClusterAcmeMetaWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeMeta";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterAcmeMeta200Response>("/cluster/acme/meta", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeMeta", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmePlugins ACME plugin index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmePlugins200Response</returns>
        public GetClusterAcmePlugins200Response GetClusterAcmePlugins(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmePlugins200Response> localVarResponse = GetClusterAcmePluginsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmePlugins ACME plugin index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmePlugins200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterAcmePlugins200Response> GetClusterAcmePluginsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmePlugins";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterAcmePlugins200Response>("/cluster/acme/plugins", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmePlugins", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmePlugins ACME plugin index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmePlugins200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterAcmePlugins200Response> GetClusterAcmePluginsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmePlugins200Response> localVarResponse = await GetClusterAcmePluginsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmePlugins ACME plugin index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmePlugins200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterAcmePlugins200Response>> GetClusterAcmePluginsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmePlugins";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterAcmePlugins200Response>("/cluster/acme/plugins", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmePlugins", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmePluginsSingle Get ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmePluginsSingle200Response</returns>
        public GetClusterAcmePluginsSingle200Response GetClusterAcmePluginsSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmePluginsSingle200Response> localVarResponse = GetClusterAcmePluginsSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmePluginsSingle Get ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmePluginsSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterAcmePluginsSingle200Response> GetClusterAcmePluginsSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterAcmePluginsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmePluginsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterAcmePluginsSingle200Response>("/cluster/acme/plugins/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmePluginsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmePluginsSingle Get ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmePluginsSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterAcmePluginsSingle200Response> GetClusterAcmePluginsSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmePluginsSingle200Response> localVarResponse = await GetClusterAcmePluginsSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmePluginsSingle Get ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmePluginsSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterAcmePluginsSingle200Response>> GetClusterAcmePluginsSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterAcmePluginsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmePluginsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterAcmePluginsSingle200Response>("/cluster/acme/plugins/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmePluginsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeTos Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterAcmeTos200Response</returns>
        public GetClusterAcmeTos200Response GetClusterAcmeTos(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeTos200Response> localVarResponse = GetClusterAcmeTosWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeTos Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterAcmeTos200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterAcmeTos200Response> GetClusterAcmeTosWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeTos";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterAcmeTos200Response>("/cluster/acme/tos", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeTos", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterAcmeTos Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterAcmeTos200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterAcmeTos200Response> GetClusterAcmeTosAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterAcmeTos200Response> localVarResponse = await GetClusterAcmeTosWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterAcmeTos Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterAcmeTos200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterAcmeTos200Response>> GetClusterAcmeTosWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterAcmeTos";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterAcmeTos200Response>("/cluster/acme/tos", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterAcmeTos", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackup List vzdump backup schedule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackup200Response</returns>
        public GetClusterBackup200Response GetClusterBackup(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackup200Response> localVarResponse = GetClusterBackupWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackup List vzdump backup schedule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackup200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterBackup200Response> GetClusterBackupWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterBackup200Response>("/cluster/backup", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackup List vzdump backup schedule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackup200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterBackup200Response> GetClusterBackupAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackup200Response> localVarResponse = await GetClusterBackupWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackup List vzdump backup schedule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackup200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterBackup200Response>> GetClusterBackupWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterBackup200Response>("/cluster/backup", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackupSingle Read vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterBackupSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterBackupSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackupSingle Read vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterBackupSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterBackupSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackupSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/backup/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackupSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackupSingle Read vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterBackupSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterBackupSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackupSingle Read vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterBackupSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterBackupSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackupSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/backup/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackupSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackupSingleIncludedvolumes Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackupSingleIncludedvolumes200Response</returns>
        public GetClusterBackupSingleIncludedvolumes200Response GetClusterBackupSingleIncludedvolumes(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackupSingleIncludedvolumes200Response> localVarResponse = GetClusterBackupSingleIncludedvolumesWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackupSingleIncludedvolumes Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackupSingleIncludedvolumes200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterBackupSingleIncludedvolumes200Response> GetClusterBackupSingleIncludedvolumesWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterBackupSingleIncludedvolumes");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackupSingleIncludedvolumes";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterBackupSingleIncludedvolumes200Response>("/cluster/backup/{id}/included_volumes", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackupSingleIncludedvolumes", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackupSingleIncludedvolumes Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackupSingleIncludedvolumes200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterBackupSingleIncludedvolumes200Response> GetClusterBackupSingleIncludedvolumesAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackupSingleIncludedvolumes200Response> localVarResponse = await GetClusterBackupSingleIncludedvolumesWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackupSingleIncludedvolumes Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackupSingleIncludedvolumes200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterBackupSingleIncludedvolumes200Response>> GetClusterBackupSingleIncludedvolumesWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterBackupSingleIncludedvolumes");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackupSingleIncludedvolumes";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterBackupSingleIncludedvolumes200Response>("/cluster/backup/{id}/included_volumes", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackupSingleIncludedvolumes", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackupinfo Index for backup info related endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackupinfo200Response</returns>
        public GetClusterBackupinfo200Response GetClusterBackupinfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfo200Response> localVarResponse = GetClusterBackupinfoWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackupinfo Index for backup info related endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackupinfo200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfo200Response> GetClusterBackupinfoWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackupinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterBackupinfo200Response>("/cluster/backup-info", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackupinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackupinfo Index for backup info related endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackupinfo200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterBackupinfo200Response> GetClusterBackupinfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfo200Response> localVarResponse = await GetClusterBackupinfoWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackupinfo Index for backup info related endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackupinfo200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfo200Response>> GetClusterBackupinfoWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackupinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterBackupinfo200Response>("/cluster/backup-info", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackupinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackupinfoNotbackedup Shows all guests which are not covered by any backup job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackupinfoNotbackedup200Response</returns>
        public GetClusterBackupinfoNotbackedup200Response GetClusterBackupinfoNotbackedup(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfoNotbackedup200Response> localVarResponse = GetClusterBackupinfoNotbackedupWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackupinfoNotbackedup Shows all guests which are not covered by any backup job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackupinfoNotbackedup200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfoNotbackedup200Response> GetClusterBackupinfoNotbackedupWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackupinfoNotbackedup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterBackupinfoNotbackedup200Response>("/cluster/backup-info/not-backed-up", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackupinfoNotbackedup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBackupinfoNotbackedup Shows all guests which are not covered by any backup job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackupinfoNotbackedup200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterBackupinfoNotbackedup200Response> GetClusterBackupinfoNotbackedupAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfoNotbackedup200Response> localVarResponse = await GetClusterBackupinfoNotbackedupWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBackupinfoNotbackedup Shows all guests which are not covered by any backup job.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackupinfoNotbackedup200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfoNotbackedup200Response>> GetClusterBackupinfoNotbackedupWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBackupinfoNotbackedup";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterBackupinfoNotbackedup200Response>("/cluster/backup-info/not-backed-up", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBackupinfoNotbackedup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBulkaction List resource types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMapping200Response</returns>
        public GetClusterMapping200Response GetClusterBulkaction(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMapping200Response> localVarResponse = GetClusterBulkactionWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBulkaction List resource types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMapping200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMapping200Response> GetClusterBulkactionWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBulkaction";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMapping200Response>("/cluster/bulk-action", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBulkaction", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBulkaction List resource types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMapping200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMapping200Response> GetClusterBulkactionAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMapping200Response> localVarResponse = await GetClusterBulkactionWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBulkaction List resource types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMapping200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMapping200Response>> GetClusterBulkactionWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBulkaction";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMapping200Response>("/cluster/bulk-action", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBulkaction", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBulkactionGuest Bulk action index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterBulkactionGuest(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterBulkactionGuestWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBulkactionGuest Bulk action index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterBulkactionGuestWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBulkactionGuest";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/bulk-action/guest", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBulkactionGuest", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterBulkactionGuest Bulk action index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterBulkactionGuestAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterBulkactionGuestWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterBulkactionGuest Bulk action index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterBulkactionGuestWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterBulkactionGuest";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/bulk-action/guest", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterBulkactionGuest", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCeph Cluster ceph index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterCeph(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterCephWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCeph Cluster ceph index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterCephWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCeph";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/ceph", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCeph", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCeph Cluster ceph index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterCephAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterCephWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCeph Cluster ceph index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterCephWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCeph";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/ceph", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCeph", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCephFlags get the status of all ceph flags
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterCephFlags200Response</returns>
        public GetClusterCephFlags200Response GetClusterCephFlags(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterCephFlags200Response> localVarResponse = GetClusterCephFlagsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCephFlags get the status of all ceph flags
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterCephFlags200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterCephFlags200Response> GetClusterCephFlagsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCephFlags";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterCephFlags200Response>("/cluster/ceph/flags", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCephFlags", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCephFlags get the status of all ceph flags
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterCephFlags200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterCephFlags200Response> GetClusterCephFlagsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterCephFlags200Response> localVarResponse = await GetClusterCephFlagsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCephFlags get the status of all ceph flags
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterCephFlags200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterCephFlags200Response>> GetClusterCephFlagsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCephFlags";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterCephFlags200Response>("/cluster/ceph/flags", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCephFlags", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCephFlagsSingle Get the status of a specific ceph flag.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterCephFlagsSingle200Response</returns>
        public GetClusterCephFlagsSingle200Response GetClusterCephFlagsSingle(string flag, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterCephFlagsSingle200Response> localVarResponse = GetClusterCephFlagsSingleWithHttpInfo(flag);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCephFlagsSingle Get the status of a specific ceph flag.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterCephFlagsSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterCephFlagsSingle200Response> GetClusterCephFlagsSingleWithHttpInfo(string flag, int operationIndex = 0)
        {
            // verify the required parameter 'flag' is set
            if (flag == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'flag' when calling ProxmoxGeneratedApi->GetClusterCephFlagsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("flag", ProxmoxSharp.Client.ClientUtils.ParameterToString(flag)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCephFlagsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterCephFlagsSingle200Response>("/cluster/ceph/flags/{flag}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCephFlagsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCephFlagsSingle Get the status of a specific ceph flag.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterCephFlagsSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterCephFlagsSingle200Response> GetClusterCephFlagsSingleAsync(string flag, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterCephFlagsSingle200Response> localVarResponse = await GetClusterCephFlagsSingleWithHttpInfoAsync(flag, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCephFlagsSingle Get the status of a specific ceph flag.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterCephFlagsSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterCephFlagsSingle200Response>> GetClusterCephFlagsSingleWithHttpInfoAsync(string flag, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'flag' is set
            if (flag == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'flag' when calling ProxmoxGeneratedApi->GetClusterCephFlagsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("flag", ProxmoxSharp.Client.ClientUtils.ParameterToString(flag)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCephFlagsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterCephFlagsSingle200Response>("/cluster/ceph/flags/{flag}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCephFlagsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCephMetadata Get ceph metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterCephMetadata200Response</returns>
        public GetClusterCephMetadata200Response GetClusterCephMetadata(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterCephMetadata200Response> localVarResponse = GetClusterCephMetadataWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCephMetadata Get ceph metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterCephMetadata200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterCephMetadata200Response> GetClusterCephMetadataWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCephMetadata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterCephMetadata200Response>("/cluster/ceph/metadata", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCephMetadata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCephMetadata Get ceph metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterCephMetadata200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterCephMetadata200Response> GetClusterCephMetadataAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterCephMetadata200Response> localVarResponse = await GetClusterCephMetadataWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCephMetadata Get ceph metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterCephMetadata200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterCephMetadata200Response>> GetClusterCephMetadataWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCephMetadata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterCephMetadata200Response>("/cluster/ceph/metadata", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCephMetadata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCephStatus Get ceph status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterCephStatus(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterCephStatusWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCephStatus Get ceph status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterCephStatusWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCephStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/ceph/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCephStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterCephStatus Get ceph status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterCephStatusAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterCephStatusWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterCephStatus Get ceph status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterCephStatusWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterCephStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/ceph/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterCephStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfig Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterConfig(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterConfigWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfig Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterConfigWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfig Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterConfigAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterConfigWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfig Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterConfigWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigApiversion Return the version of the cluster join API available on this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterConfigApiversion200Response</returns>
        public GetClusterConfigApiversion200Response GetClusterConfigApiversion(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterConfigApiversion200Response> localVarResponse = GetClusterConfigApiversionWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigApiversion Return the version of the cluster join API available on this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterConfigApiversion200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterConfigApiversion200Response> GetClusterConfigApiversionWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigApiversion";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterConfigApiversion200Response>("/cluster/config/apiversion", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigApiversion", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigApiversion Return the version of the cluster join API available on this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterConfigApiversion200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterConfigApiversion200Response> GetClusterConfigApiversionAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterConfigApiversion200Response> localVarResponse = await GetClusterConfigApiversionWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigApiversion Return the version of the cluster join API available on this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterConfigApiversion200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterConfigApiversion200Response>> GetClusterConfigApiversionWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigApiversion";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterConfigApiversion200Response>("/cluster/config/apiversion", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigApiversion", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigJoin Get information needed to join this cluster over the connected node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterConfigJoin200Response</returns>
        public GetClusterConfigJoin200Response GetClusterConfigJoin(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterConfigJoin200Response> localVarResponse = GetClusterConfigJoinWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigJoin Get information needed to join this cluster over the connected node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterConfigJoin200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterConfigJoin200Response> GetClusterConfigJoinWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigJoin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterConfigJoin200Response>("/cluster/config/join", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigJoin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigJoin Get information needed to join this cluster over the connected node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterConfigJoin200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterConfigJoin200Response> GetClusterConfigJoinAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterConfigJoin200Response> localVarResponse = await GetClusterConfigJoinWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigJoin Get information needed to join this cluster over the connected node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterConfigJoin200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterConfigJoin200Response>> GetClusterConfigJoinWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigJoin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterConfigJoin200Response>("/cluster/config/join", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigJoin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigNodes Corosync node list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterConfigNodes200Response</returns>
        public GetClusterConfigNodes200Response GetClusterConfigNodes(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterConfigNodes200Response> localVarResponse = GetClusterConfigNodesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigNodes Corosync node list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterConfigNodes200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterConfigNodes200Response> GetClusterConfigNodesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigNodes";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterConfigNodes200Response>("/cluster/config/nodes", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigNodes", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigNodes Corosync node list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterConfigNodes200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterConfigNodes200Response> GetClusterConfigNodesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterConfigNodes200Response> localVarResponse = await GetClusterConfigNodesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigNodes Corosync node list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterConfigNodes200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterConfigNodes200Response>> GetClusterConfigNodesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigNodes";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterConfigNodes200Response>("/cluster/config/nodes", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigNodes", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigQdevice Get QDevice status
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterConfigQdevice(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterConfigQdeviceWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigQdevice Get QDevice status
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterConfigQdeviceWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigQdevice";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/config/qdevice", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigQdevice", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigQdevice Get QDevice status
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterConfigQdeviceAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterConfigQdeviceWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigQdevice Get QDevice status
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterConfigQdeviceWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigQdevice";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/config/qdevice", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigQdevice", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigTotem Get corosync totem protocol settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterConfigTotem(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterConfigTotemWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigTotem Get corosync totem protocol settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterConfigTotemWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigTotem";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/config/totem", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigTotem", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterConfigTotem Get corosync totem protocol settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterConfigTotemAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterConfigTotemWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterConfigTotem Get corosync totem protocol settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterConfigTotemWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterConfigTotem";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/config/totem", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterConfigTotem", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterFirewall(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterFirewallWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterFirewallWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/firewall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterFirewallAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterFirewallWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterFirewallWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/firewall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallAliases200Response</returns>
        public GetClusterFirewallAliases200Response GetClusterFirewallAliases(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> localVarResponse = GetClusterFirewallAliasesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallAliases200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> GetClusterFirewallAliasesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallAliases200Response>("/cluster/firewall/aliases", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallAliases200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallAliases200Response> GetClusterFirewallAliasesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> localVarResponse = await GetClusterFirewallAliasesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallAliases200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response>> GetClusterFirewallAliasesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallAliases200Response>("/cluster/firewall/aliases", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterFirewallAliasesSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterFirewallAliasesSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterFirewallAliasesSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterFirewallAliasesSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterFirewallAliasesSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterFirewallAliasesSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallGroupRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        public GetClusterFirewallGroupRule200Response GetClusterFirewallGroupRule(string group, int pos, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = GetClusterFirewallGroupRuleWithHttpInfo(group, pos);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallGroupRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> GetClusterFirewallGroupRuleWithHttpInfo(string group, int pos, int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->GetClusterFirewallGroupRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallGroupRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRule200Response>("/cluster/firewall/groups/{group}/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallGroupRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallGroupRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetClusterFirewallGroupRuleAsync(string group, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = await GetClusterFirewallGroupRuleWithHttpInfoAsync(group, pos, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallGroupRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response>> GetClusterFirewallGroupRuleWithHttpInfoAsync(string group, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->GetClusterFirewallGroupRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallGroupRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRule200Response>("/cluster/firewall/groups/{group}/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallGroupRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallGroupRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        public GetClusterFirewallGroupRules200Response GetClusterFirewallGroupRules(string group, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = GetClusterFirewallGroupRulesWithHttpInfo(group);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallGroupRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> GetClusterFirewallGroupRulesWithHttpInfo(string group, int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->GetClusterFirewallGroupRules");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallGroupRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRules200Response>("/cluster/firewall/groups/{group}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallGroupRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallGroupRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetClusterFirewallGroupRulesAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = await GetClusterFirewallGroupRulesWithHttpInfoAsync(group, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallGroupRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response>> GetClusterFirewallGroupRulesWithHttpInfoAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->GetClusterFirewallGroupRules");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallGroupRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRules200Response>("/cluster/firewall/groups/{group}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallGroupRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallGroups List security groups.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroups200Response</returns>
        public GetClusterFirewallGroups200Response GetClusterFirewallGroups(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroups200Response> localVarResponse = GetClusterFirewallGroupsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallGroups List security groups.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroups200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroups200Response> GetClusterFirewallGroupsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroups200Response>("/cluster/firewall/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallGroups List security groups.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroups200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroups200Response> GetClusterFirewallGroupsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroups200Response> localVarResponse = await GetClusterFirewallGroupsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallGroups List security groups.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroups200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroups200Response>> GetClusterFirewallGroupsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroups200Response>("/cluster/firewall/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallIPSet List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSet200Response</returns>
        public GetClusterFirewallIPSet200Response GetClusterFirewallIPSet(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> localVarResponse = GetClusterFirewallIPSetWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallIPSet List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSet200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> GetClusterFirewallIPSetWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterFirewallIPSet");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallIPSet200Response>("/cluster/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallIPSet List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSet200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallIPSet200Response> GetClusterFirewallIPSetAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> localVarResponse = await GetClusterFirewallIPSetWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallIPSet List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSet200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response>> GetClusterFirewallIPSetWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterFirewallIPSet");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallIPSet200Response>("/cluster/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallIPSetIP Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterFirewallIPSetIP(string cidr, string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterFirewallIPSetIPWithHttpInfo(cidr, name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallIPSetIP Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterFirewallIPSetIPWithHttpInfo(string cidr, string name, int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->GetClusterFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterFirewallIPSetIP");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallIPSetIP Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterFirewallIPSetIPAsync(string cidr, string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterFirewallIPSetIPWithHttpInfoAsync(cidr, name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallIPSetIP Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->GetClusterFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterFirewallIPSetIP");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallIPSets List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSets200Response</returns>
        public GetClusterFirewallIPSets200Response GetClusterFirewallIPSets(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> localVarResponse = GetClusterFirewallIPSetsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallIPSets List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSets200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> GetClusterFirewallIPSetsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallIPSets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallIPSets200Response>("/cluster/firewall/ipset", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallIPSets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallIPSets List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSets200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallIPSets200Response> GetClusterFirewallIPSetsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> localVarResponse = await GetClusterFirewallIPSetsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallIPSets List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSets200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response>> GetClusterFirewallIPSetsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallIPSets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallIPSets200Response>("/cluster/firewall/ipset", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallIPSets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallMacros List available macros
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallMacros200Response</returns>
        public GetClusterFirewallMacros200Response GetClusterFirewallMacros(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallMacros200Response> localVarResponse = GetClusterFirewallMacrosWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallMacros List available macros
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallMacros200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallMacros200Response> GetClusterFirewallMacrosWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallMacros";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallMacros200Response>("/cluster/firewall/macros", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallMacros", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallMacros List available macros
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallMacros200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallMacros200Response> GetClusterFirewallMacrosAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallMacros200Response> localVarResponse = await GetClusterFirewallMacrosWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallMacros List available macros
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallMacros200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallMacros200Response>> GetClusterFirewallMacrosWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallMacros";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallMacros200Response>("/cluster/firewall/macros", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallMacros", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallOptions Get Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallOptions200Response</returns>
        public GetClusterFirewallOptions200Response GetClusterFirewallOptions(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallOptions200Response> localVarResponse = GetClusterFirewallOptionsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallOptions Get Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallOptions200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallOptions200Response> GetClusterFirewallOptionsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallOptions200Response>("/cluster/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallOptions Get Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallOptions200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallOptions200Response> GetClusterFirewallOptionsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallOptions200Response> localVarResponse = await GetClusterFirewallOptionsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallOptions Get Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallOptions200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallOptions200Response>> GetClusterFirewallOptionsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallOptions200Response>("/cluster/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallRefs200Response</returns>
        public GetClusterFirewallRefs200Response GetClusterFirewallRefs(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> localVarResponse = GetClusterFirewallRefsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallRefs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> GetClusterFirewallRefsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallRefs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallRefs200Response>("/cluster/firewall/refs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallRefs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallRefs200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallRefs200Response> GetClusterFirewallRefsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> localVarResponse = await GetClusterFirewallRefsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallRefs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response>> GetClusterFirewallRefsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallRefs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallRefs200Response>("/cluster/firewall/refs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallRefs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        public GetClusterFirewallGroupRule200Response GetClusterFirewallRule(int pos, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = GetClusterFirewallRuleWithHttpInfo(pos);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> GetClusterFirewallRuleWithHttpInfo(int pos, int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRule200Response>("/cluster/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetClusterFirewallRuleAsync(int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = await GetClusterFirewallRuleWithHttpInfoAsync(pos, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response>> GetClusterFirewallRuleWithHttpInfoAsync(int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRule200Response>("/cluster/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        public GetClusterFirewallGroupRules200Response GetClusterFirewallRules(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = GetClusterFirewallRulesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> GetClusterFirewallRulesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRules200Response>("/cluster/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetClusterFirewallRulesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = await GetClusterFirewallRulesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response>> GetClusterFirewallRulesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRules200Response>("/cluster/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHa Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHa200Response</returns>
        public GetClusterHa200Response GetClusterHa(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> localVarResponse = GetClusterHaWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHa Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHa200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> GetClusterHaWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHa";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHa200Response>("/cluster/ha", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHa", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHa Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHa200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHa200Response> GetClusterHaAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> localVarResponse = await GetClusterHaWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHa Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHa200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response>> GetClusterHaWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHa";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHa200Response>("/cluster/ha", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHa", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaGroups Get HA groups. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaGroups200Response</returns>
        public GetClusterHaGroups200Response GetClusterHaGroups(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaGroups200Response> localVarResponse = GetClusterHaGroupsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaGroups Get HA groups. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaGroups200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHaGroups200Response> GetClusterHaGroupsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHaGroups200Response>("/cluster/ha/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaGroups Get HA groups. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaGroups200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHaGroups200Response> GetClusterHaGroupsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaGroups200Response> localVarResponse = await GetClusterHaGroupsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaGroups Get HA groups. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaGroups200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHaGroups200Response>> GetClusterHaGroupsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaGroups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHaGroups200Response>("/cluster/ha/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaGroupsSingle Read ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetClusterHaGroupsSingle(string group, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetClusterHaGroupsSingleWithHttpInfo(group);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaGroupsSingle Read ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetClusterHaGroupsSingleWithHttpInfo(string group, int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->GetClusterHaGroupsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/cluster/ha/groups/{group}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaGroupsSingle Read ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterHaGroupsSingleAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetClusterHaGroupsSingleWithHttpInfoAsync(group, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaGroupsSingle Read ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetClusterHaGroupsSingleWithHttpInfoAsync(string group, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->GetClusterHaGroupsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/cluster/ha/groups/{group}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaResources List HA resources.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaResources200Response</returns>
        public GetClusterHaResources200Response GetClusterHaResources(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaResources200Response> localVarResponse = GetClusterHaResourcesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaResources List HA resources.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaResources200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHaResources200Response> GetClusterHaResourcesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaResources";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHaResources200Response>("/cluster/ha/resources", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaResources", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaResources List HA resources.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaResources200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHaResources200Response> GetClusterHaResourcesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaResources200Response> localVarResponse = await GetClusterHaResourcesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaResources List HA resources.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaResources200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHaResources200Response>> GetClusterHaResourcesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaResources";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHaResources200Response>("/cluster/ha/resources", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaResources", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaResourcesSingle Read resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaResourcesSingle200Response</returns>
        public GetClusterHaResourcesSingle200Response GetClusterHaResourcesSingle(string sid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaResourcesSingle200Response> localVarResponse = GetClusterHaResourcesSingleWithHttpInfo(sid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaResourcesSingle Read resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaResourcesSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHaResourcesSingle200Response> GetClusterHaResourcesSingleWithHttpInfo(string sid, int operationIndex = 0)
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->GetClusterHaResourcesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaResourcesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHaResourcesSingle200Response>("/cluster/ha/resources/{sid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaResourcesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaResourcesSingle Read resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaResourcesSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHaResourcesSingle200Response> GetClusterHaResourcesSingleAsync(string sid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaResourcesSingle200Response> localVarResponse = await GetClusterHaResourcesSingleWithHttpInfoAsync(sid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaResourcesSingle Read resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaResourcesSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHaResourcesSingle200Response>> GetClusterHaResourcesSingleWithHttpInfoAsync(string sid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->GetClusterHaResourcesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaResourcesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHaResourcesSingle200Response>("/cluster/ha/resources/{sid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaResourcesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaRules Get HA rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaRules200Response</returns>
        public GetClusterHaRules200Response GetClusterHaRules(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaRules200Response> localVarResponse = GetClusterHaRulesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaRules Get HA rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaRules200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHaRules200Response> GetClusterHaRulesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHaRules200Response>("/cluster/ha/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaRules Get HA rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaRules200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHaRules200Response> GetClusterHaRulesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaRules200Response> localVarResponse = await GetClusterHaRulesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaRules Get HA rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaRules200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHaRules200Response>> GetClusterHaRulesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHaRules200Response>("/cluster/ha/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaRulesSingle Read HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaRulesSingle200Response</returns>
        public GetClusterHaRulesSingle200Response GetClusterHaRulesSingle(string rule, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaRulesSingle200Response> localVarResponse = GetClusterHaRulesSingleWithHttpInfo(rule);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaRulesSingle Read HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaRulesSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHaRulesSingle200Response> GetClusterHaRulesSingleWithHttpInfo(string rule, int operationIndex = 0)
        {
            // verify the required parameter 'rule' is set
            if (rule == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'rule' when calling ProxmoxGeneratedApi->GetClusterHaRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("rule", ProxmoxSharp.Client.ClientUtils.ParameterToString(rule)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHaRulesSingle200Response>("/cluster/ha/rules/{rule}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaRulesSingle Read HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaRulesSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHaRulesSingle200Response> GetClusterHaRulesSingleAsync(string rule, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaRulesSingle200Response> localVarResponse = await GetClusterHaRulesSingleWithHttpInfoAsync(rule, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaRulesSingle Read HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaRulesSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHaRulesSingle200Response>> GetClusterHaRulesSingleWithHttpInfoAsync(string rule, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'rule' is set
            if (rule == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'rule' when calling ProxmoxGeneratedApi->GetClusterHaRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("rule", ProxmoxSharp.Client.ClientUtils.ParameterToString(rule)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHaRulesSingle200Response>("/cluster/ha/rules/{rule}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaStatus Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterHaStatus(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterHaStatusWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaStatus Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterHaStatusWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/ha/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaStatus Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterHaStatusAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterHaStatusWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaStatus Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterHaStatusWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/ha/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaStatusCurrent Get HA manger status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHaStatusCurrent200Response</returns>
        public GetClusterHaStatusCurrent200Response GetClusterHaStatusCurrent(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaStatusCurrent200Response> localVarResponse = GetClusterHaStatusCurrentWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaStatusCurrent Get HA manger status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHaStatusCurrent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHaStatusCurrent200Response> GetClusterHaStatusCurrentWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaStatusCurrent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHaStatusCurrent200Response>("/cluster/ha/status/current", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaStatusCurrent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaStatusCurrent Get HA manger status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHaStatusCurrent200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHaStatusCurrent200Response> GetClusterHaStatusCurrentAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHaStatusCurrent200Response> localVarResponse = await GetClusterHaStatusCurrentWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaStatusCurrent Get HA manger status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHaStatusCurrent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHaStatusCurrent200Response>> GetClusterHaStatusCurrentWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaStatusCurrent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHaStatusCurrent200Response>("/cluster/ha/status/current", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaStatusCurrent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaStatusManagerstatus Get full HA manger status, including LRM status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterHaStatusManagerstatus(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterHaStatusManagerstatusWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaStatusManagerstatus Get full HA manger status, including LRM status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterHaStatusManagerstatusWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaStatusManagerstatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/ha/status/manager_status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaStatusManagerstatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterHaStatusManagerstatus Get full HA manger status, including LRM status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterHaStatusManagerstatusAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterHaStatusManagerstatusWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterHaStatusManagerstatus Get full HA manger status, including LRM status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterHaStatusManagerstatusWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterHaStatusManagerstatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/ha/status/manager_status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterHaStatusManagerstatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterJobs Index for jobs related endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterBackupinfo200Response</returns>
        public GetClusterBackupinfo200Response GetClusterJobs(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfo200Response> localVarResponse = GetClusterJobsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterJobs Index for jobs related endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterBackupinfo200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfo200Response> GetClusterJobsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterJobs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterBackupinfo200Response>("/cluster/jobs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterJobs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterJobs Index for jobs related endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterBackupinfo200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterBackupinfo200Response> GetClusterJobsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfo200Response> localVarResponse = await GetClusterJobsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterJobs Index for jobs related endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterBackupinfo200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterBackupinfo200Response>> GetClusterJobsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterJobs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterBackupinfo200Response>("/cluster/jobs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterJobs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterJobsRealmsync List configured realm-sync-jobs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterJobsRealmsync200Response</returns>
        public GetClusterJobsRealmsync200Response GetClusterJobsRealmsync(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterJobsRealmsync200Response> localVarResponse = GetClusterJobsRealmsyncWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterJobsRealmsync List configured realm-sync-jobs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterJobsRealmsync200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterJobsRealmsync200Response> GetClusterJobsRealmsyncWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterJobsRealmsync";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterJobsRealmsync200Response>("/cluster/jobs/realm-sync", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterJobsRealmsync", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterJobsRealmsync List configured realm-sync-jobs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterJobsRealmsync200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterJobsRealmsync200Response> GetClusterJobsRealmsyncAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterJobsRealmsync200Response> localVarResponse = await GetClusterJobsRealmsyncWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterJobsRealmsync List configured realm-sync-jobs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterJobsRealmsync200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterJobsRealmsync200Response>> GetClusterJobsRealmsyncWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterJobsRealmsync";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterJobsRealmsync200Response>("/cluster/jobs/realm-sync", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterJobsRealmsync", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterJobsRealmsyncSingle Read realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterJobsRealmsyncSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterJobsRealmsyncSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterJobsRealmsyncSingle Read realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterJobsRealmsyncSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterJobsRealmsyncSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterJobsRealmsyncSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/jobs/realm-sync/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterJobsRealmsyncSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterJobsRealmsyncSingle Read realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterJobsRealmsyncSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterJobsRealmsyncSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterJobsRealmsyncSingle Read realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterJobsRealmsyncSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterJobsRealmsyncSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterJobsRealmsyncSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/jobs/realm-sync/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterJobsRealmsyncSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterJobsScheduleanalyze Returns a list of future schedule runtimes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterJobsScheduleanalyze200Response</returns>
        public GetClusterJobsScheduleanalyze200Response GetClusterJobsScheduleanalyze(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterJobsScheduleanalyze200Response> localVarResponse = GetClusterJobsScheduleanalyzeWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterJobsScheduleanalyze Returns a list of future schedule runtimes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterJobsScheduleanalyze200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterJobsScheduleanalyze200Response> GetClusterJobsScheduleanalyzeWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterJobsScheduleanalyze";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterJobsScheduleanalyze200Response>("/cluster/jobs/schedule-analyze", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterJobsScheduleanalyze", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterJobsScheduleanalyze Returns a list of future schedule runtimes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterJobsScheduleanalyze200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterJobsScheduleanalyze200Response> GetClusterJobsScheduleanalyzeAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterJobsScheduleanalyze200Response> localVarResponse = await GetClusterJobsScheduleanalyzeWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterJobsScheduleanalyze Returns a list of future schedule runtimes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterJobsScheduleanalyze200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterJobsScheduleanalyze200Response>> GetClusterJobsScheduleanalyzeWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterJobsScheduleanalyze";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterJobsScheduleanalyze200Response>("/cluster/jobs/schedule-analyze", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterJobsScheduleanalyze", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterLog Read cluster log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterLog(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterLogWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterLog Read cluster log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterLogWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/log", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterLog Read cluster log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterLogAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterLogWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterLog Read cluster log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterLogWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/log", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMapping List resource types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMapping200Response</returns>
        public GetClusterMapping200Response GetClusterMapping(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMapping200Response> localVarResponse = GetClusterMappingWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMapping List resource types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMapping200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMapping200Response> GetClusterMappingWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMapping";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMapping200Response>("/cluster/mapping", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMapping", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMapping List resource types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMapping200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMapping200Response> GetClusterMappingAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMapping200Response> localVarResponse = await GetClusterMappingWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMapping List resource types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMapping200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMapping200Response>> GetClusterMappingWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMapping";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMapping200Response>("/cluster/mapping", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMapping", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingDir List directory mapping
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMappingDir200Response</returns>
        public GetClusterMappingDir200Response GetClusterMappingDir(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMappingDir200Response> localVarResponse = GetClusterMappingDirWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingDir List directory mapping
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMappingDir200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMappingDir200Response> GetClusterMappingDirWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingDir";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMappingDir200Response>("/cluster/mapping/dir", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingDir", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingDir List directory mapping
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMappingDir200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMappingDir200Response> GetClusterMappingDirAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMappingDir200Response> localVarResponse = await GetClusterMappingDirWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingDir List directory mapping
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMappingDir200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMappingDir200Response>> GetClusterMappingDirWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingDir";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMappingDir200Response>("/cluster/mapping/dir", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingDir", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingDirSingle Get directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterMappingDirSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterMappingDirSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingDirSingle Get directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterMappingDirSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterMappingDirSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingDirSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/mapping/dir/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingDirSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingDirSingle Get directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterMappingDirSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterMappingDirSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingDirSingle Get directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterMappingDirSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterMappingDirSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingDirSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/mapping/dir/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingDirSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingPci List PCI Hardware Mapping
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMappingPci200Response</returns>
        public GetClusterMappingPci200Response GetClusterMappingPci(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMappingPci200Response> localVarResponse = GetClusterMappingPciWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingPci List PCI Hardware Mapping
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMappingPci200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMappingPci200Response> GetClusterMappingPciWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingPci";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMappingPci200Response>("/cluster/mapping/pci", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingPci", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingPci List PCI Hardware Mapping
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMappingPci200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMappingPci200Response> GetClusterMappingPciAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMappingPci200Response> localVarResponse = await GetClusterMappingPciWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingPci List PCI Hardware Mapping
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMappingPci200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMappingPci200Response>> GetClusterMappingPciWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingPci";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMappingPci200Response>("/cluster/mapping/pci", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingPci", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingPciSingle Get PCI Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterMappingPciSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterMappingPciSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingPciSingle Get PCI Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterMappingPciSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterMappingPciSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingPciSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/mapping/pci/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingPciSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingPciSingle Get PCI Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterMappingPciSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterMappingPciSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingPciSingle Get PCI Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterMappingPciSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterMappingPciSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingPciSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/mapping/pci/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingPciSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingUsb List USB Hardware Mappings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMappingUsb200Response</returns>
        public GetClusterMappingUsb200Response GetClusterMappingUsb(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMappingUsb200Response> localVarResponse = GetClusterMappingUsbWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingUsb List USB Hardware Mappings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMappingUsb200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMappingUsb200Response> GetClusterMappingUsbWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingUsb";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMappingUsb200Response>("/cluster/mapping/usb", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingUsb", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingUsb List USB Hardware Mappings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMappingUsb200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMappingUsb200Response> GetClusterMappingUsbAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMappingUsb200Response> localVarResponse = await GetClusterMappingUsbWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingUsb List USB Hardware Mappings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMappingUsb200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMappingUsb200Response>> GetClusterMappingUsbWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingUsb";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMappingUsb200Response>("/cluster/mapping/usb", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingUsb", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingUsbSingle Get USB Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterMappingUsbSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterMappingUsbSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingUsbSingle Get USB Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterMappingUsbSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterMappingUsbSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingUsbSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/mapping/usb/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingUsbSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMappingUsbSingle Get USB Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterMappingUsbSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterMappingUsbSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMappingUsbSingle Get USB Mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterMappingUsbSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterMappingUsbSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMappingUsbSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/mapping/usb/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMappingUsbSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMetrics Metrics index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterMetrics(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterMetricsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMetrics Metrics index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterMetricsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMetrics";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/metrics", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMetrics", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMetrics Metrics index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterMetricsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterMetricsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMetrics Metrics index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterMetricsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMetrics";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/metrics", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMetrics", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMetricsExport Retrieve metrics of the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsExport200Response</returns>
        public GetClusterMetricsExport200Response GetClusterMetricsExport(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsExport200Response> localVarResponse = GetClusterMetricsExportWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMetricsExport Retrieve metrics of the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsExport200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsExport200Response> GetClusterMetricsExportWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMetricsExport";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsExport200Response>("/cluster/metrics/export", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMetricsExport", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMetricsExport Retrieve metrics of the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsExport200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsExport200Response> GetClusterMetricsExportAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsExport200Response> localVarResponse = await GetClusterMetricsExportWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMetricsExport Retrieve metrics of the cluster.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsExport200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsExport200Response>> GetClusterMetricsExportWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMetricsExport";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsExport200Response>("/cluster/metrics/export", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMetricsExport", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMetricsServer List configured metric servers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServer200Response</returns>
        public GetClusterMetricsServer200Response GetClusterMetricsServer(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServer200Response> localVarResponse = GetClusterMetricsServerWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMetricsServer List configured metric servers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServer200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServer200Response> GetClusterMetricsServerWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMetricsServer";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServer200Response>("/cluster/metrics/server", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMetricsServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMetricsServer List configured metric servers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServer200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServer200Response> GetClusterMetricsServerAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServer200Response> localVarResponse = await GetClusterMetricsServerWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMetricsServer List configured metric servers.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServer200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServer200Response>> GetClusterMetricsServerWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMetricsServer";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServer200Response>("/cluster/metrics/server", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMetricsServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMetricsServerSingle Read metric server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterMetricsServerSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterMetricsServerSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMetricsServerSingle Read metric server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterMetricsServerSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterMetricsServerSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMetricsServerSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/metrics/server/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMetricsServerSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterMetricsServerSingle Read metric server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterMetricsServerSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterMetricsServerSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterMetricsServerSingle Read metric server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterMetricsServerSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterMetricsServerSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterMetricsServerSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/metrics/server/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterMetricsServerSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNextid Get next free VMID. Pass a VMID to assert that its free (at time of check).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNextid200Response</returns>
        public GetClusterNextid200Response GetClusterNextid(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNextid200Response> localVarResponse = GetClusterNextidWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNextid Get next free VMID. Pass a VMID to assert that its free (at time of check).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNextid200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNextid200Response> GetClusterNextidWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNextid";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNextid200Response>("/cluster/nextid", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNextid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNextid Get next free VMID. Pass a VMID to assert that its free (at time of check).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNextid200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNextid200Response> GetClusterNextidAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNextid200Response> localVarResponse = await GetClusterNextidWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNextid Get next free VMID. Pass a VMID to assert that its free (at time of check).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNextid200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNextid200Response>> GetClusterNextidWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNextid";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNextid200Response>("/cluster/nextid", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNextid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotifications Index for notification-related API endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterNotifications(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterNotificationsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotifications Index for notification-related API endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterNotificationsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotifications";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/notifications", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotifications", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotifications Index for notification-related API endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterNotificationsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterNotificationsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotifications Index for notification-related API endpoints.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterNotificationsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotifications";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/notifications", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotifications", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpoints Index for all available endpoint types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterNotificationsEndpoints(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterNotificationsEndpointsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpoints Index for all available endpoint types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterNotificationsEndpointsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpoints";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/notifications/endpoints", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpoints", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpoints Index for all available endpoint types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterNotificationsEndpointsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterNotificationsEndpointsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpoints Index for all available endpoint types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterNotificationsEndpointsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpoints";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/notifications/endpoints", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpoints", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsGotify Returns a list of all gotify endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsGotify200Response</returns>
        public GetClusterNotificationsEndpointsGotify200Response GetClusterNotificationsEndpointsGotify(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsGotify200Response> localVarResponse = GetClusterNotificationsEndpointsGotifyWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsGotify Returns a list of all gotify endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsGotify200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsGotify200Response> GetClusterNotificationsEndpointsGotifyWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsGotify";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsEndpointsGotify200Response>("/cluster/notifications/endpoints/gotify", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsGotify", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsGotify Returns a list of all gotify endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsGotify200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsEndpointsGotify200Response> GetClusterNotificationsEndpointsGotifyAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsGotify200Response> localVarResponse = await GetClusterNotificationsEndpointsGotifyWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsGotify Returns a list of all gotify endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsGotify200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsGotify200Response>> GetClusterNotificationsEndpointsGotifyWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsGotify";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsEndpointsGotify200Response>("/cluster/notifications/endpoints/gotify", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsGotify", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsGotifySingle Return a specific gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsGotifySingle200Response</returns>
        public GetClusterNotificationsEndpointsGotifySingle200Response GetClusterNotificationsEndpointsGotifySingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsGotifySingle200Response> localVarResponse = GetClusterNotificationsEndpointsGotifySingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsGotifySingle Return a specific gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsGotifySingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsGotifySingle200Response> GetClusterNotificationsEndpointsGotifySingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsEndpointsGotifySingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsGotifySingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsEndpointsGotifySingle200Response>("/cluster/notifications/endpoints/gotify/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsGotifySingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsGotifySingle Return a specific gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsGotifySingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsEndpointsGotifySingle200Response> GetClusterNotificationsEndpointsGotifySingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsGotifySingle200Response> localVarResponse = await GetClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsGotifySingle Return a specific gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsGotifySingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsGotifySingle200Response>> GetClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsEndpointsGotifySingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsGotifySingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsEndpointsGotifySingle200Response>("/cluster/notifications/endpoints/gotify/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsGotifySingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSendmail Returns a list of all sendmail endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsSendmail200Response</returns>
        public GetClusterNotificationsEndpointsSendmail200Response GetClusterNotificationsEndpointsSendmail(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSendmail200Response> localVarResponse = GetClusterNotificationsEndpointsSendmailWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSendmail Returns a list of all sendmail endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsSendmail200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSendmail200Response> GetClusterNotificationsEndpointsSendmailWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsSendmail";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsEndpointsSendmail200Response>("/cluster/notifications/endpoints/sendmail", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsSendmail", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSendmail Returns a list of all sendmail endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsSendmail200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsEndpointsSendmail200Response> GetClusterNotificationsEndpointsSendmailAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSendmail200Response> localVarResponse = await GetClusterNotificationsEndpointsSendmailWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSendmail Returns a list of all sendmail endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsSendmail200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSendmail200Response>> GetClusterNotificationsEndpointsSendmailWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsSendmail";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsEndpointsSendmail200Response>("/cluster/notifications/endpoints/sendmail", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsSendmail", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSendmailSingle Return a specific sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsSendmailSingle200Response</returns>
        public GetClusterNotificationsEndpointsSendmailSingle200Response GetClusterNotificationsEndpointsSendmailSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSendmailSingle200Response> localVarResponse = GetClusterNotificationsEndpointsSendmailSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSendmailSingle Return a specific sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsSendmailSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSendmailSingle200Response> GetClusterNotificationsEndpointsSendmailSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsEndpointsSendmailSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsSendmailSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsEndpointsSendmailSingle200Response>("/cluster/notifications/endpoints/sendmail/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsSendmailSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSendmailSingle Return a specific sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsSendmailSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsEndpointsSendmailSingle200Response> GetClusterNotificationsEndpointsSendmailSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSendmailSingle200Response> localVarResponse = await GetClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSendmailSingle Return a specific sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsSendmailSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSendmailSingle200Response>> GetClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsEndpointsSendmailSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsSendmailSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsEndpointsSendmailSingle200Response>("/cluster/notifications/endpoints/sendmail/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsSendmailSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSmtp Returns a list of all smtp endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsSmtp200Response</returns>
        public GetClusterNotificationsEndpointsSmtp200Response GetClusterNotificationsEndpointsSmtp(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSmtp200Response> localVarResponse = GetClusterNotificationsEndpointsSmtpWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSmtp Returns a list of all smtp endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsSmtp200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSmtp200Response> GetClusterNotificationsEndpointsSmtpWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsSmtp";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsEndpointsSmtp200Response>("/cluster/notifications/endpoints/smtp", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsSmtp", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSmtp Returns a list of all smtp endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsSmtp200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsEndpointsSmtp200Response> GetClusterNotificationsEndpointsSmtpAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSmtp200Response> localVarResponse = await GetClusterNotificationsEndpointsSmtpWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSmtp Returns a list of all smtp endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsSmtp200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSmtp200Response>> GetClusterNotificationsEndpointsSmtpWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsSmtp";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsEndpointsSmtp200Response>("/cluster/notifications/endpoints/smtp", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsSmtp", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSmtpSingle Return a specific smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsSmtpSingle200Response</returns>
        public GetClusterNotificationsEndpointsSmtpSingle200Response GetClusterNotificationsEndpointsSmtpSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSmtpSingle200Response> localVarResponse = GetClusterNotificationsEndpointsSmtpSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSmtpSingle Return a specific smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsSmtpSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSmtpSingle200Response> GetClusterNotificationsEndpointsSmtpSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsEndpointsSmtpSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsSmtpSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsEndpointsSmtpSingle200Response>("/cluster/notifications/endpoints/smtp/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsSmtpSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSmtpSingle Return a specific smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsSmtpSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsEndpointsSmtpSingle200Response> GetClusterNotificationsEndpointsSmtpSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSmtpSingle200Response> localVarResponse = await GetClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsSmtpSingle Return a specific smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsSmtpSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsSmtpSingle200Response>> GetClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsEndpointsSmtpSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsSmtpSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsEndpointsSmtpSingle200Response>("/cluster/notifications/endpoints/smtp/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsSmtpSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsWebhook Returns a list of all webhook endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsWebhook200Response</returns>
        public GetClusterNotificationsEndpointsWebhook200Response GetClusterNotificationsEndpointsWebhook(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsWebhook200Response> localVarResponse = GetClusterNotificationsEndpointsWebhookWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsWebhook Returns a list of all webhook endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsWebhook200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsWebhook200Response> GetClusterNotificationsEndpointsWebhookWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsWebhook";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsEndpointsWebhook200Response>("/cluster/notifications/endpoints/webhook", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsWebhook", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsWebhook Returns a list of all webhook endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsWebhook200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsEndpointsWebhook200Response> GetClusterNotificationsEndpointsWebhookAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsWebhook200Response> localVarResponse = await GetClusterNotificationsEndpointsWebhookWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsWebhook Returns a list of all webhook endpoints
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsWebhook200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsWebhook200Response>> GetClusterNotificationsEndpointsWebhookWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsWebhook";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsEndpointsWebhook200Response>("/cluster/notifications/endpoints/webhook", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsWebhook", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsWebhookSingle Return a specific webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsEndpointsWebhookSingle200Response</returns>
        public GetClusterNotificationsEndpointsWebhookSingle200Response GetClusterNotificationsEndpointsWebhookSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsWebhookSingle200Response> localVarResponse = GetClusterNotificationsEndpointsWebhookSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsWebhookSingle Return a specific webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsEndpointsWebhookSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsWebhookSingle200Response> GetClusterNotificationsEndpointsWebhookSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsEndpointsWebhookSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsWebhookSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsEndpointsWebhookSingle200Response>("/cluster/notifications/endpoints/webhook/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsWebhookSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsWebhookSingle Return a specific webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsEndpointsWebhookSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsEndpointsWebhookSingle200Response> GetClusterNotificationsEndpointsWebhookSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsWebhookSingle200Response> localVarResponse = await GetClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsEndpointsWebhookSingle Return a specific webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsEndpointsWebhookSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsEndpointsWebhookSingle200Response>> GetClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsEndpointsWebhookSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsEndpointsWebhookSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsEndpointsWebhookSingle200Response>("/cluster/notifications/endpoints/webhook/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsEndpointsWebhookSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsMatcherfields Returns known notification metadata fields
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsMatcherfields200Response</returns>
        public GetClusterNotificationsMatcherfields200Response GetClusterNotificationsMatcherfields(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatcherfields200Response> localVarResponse = GetClusterNotificationsMatcherfieldsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsMatcherfields Returns known notification metadata fields
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsMatcherfields200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatcherfields200Response> GetClusterNotificationsMatcherfieldsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsMatcherfields";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsMatcherfields200Response>("/cluster/notifications/matcher-fields", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsMatcherfields", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsMatcherfields Returns known notification metadata fields
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsMatcherfields200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsMatcherfields200Response> GetClusterNotificationsMatcherfieldsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatcherfields200Response> localVarResponse = await GetClusterNotificationsMatcherfieldsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsMatcherfields Returns known notification metadata fields
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsMatcherfields200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatcherfields200Response>> GetClusterNotificationsMatcherfieldsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsMatcherfields";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsMatcherfields200Response>("/cluster/notifications/matcher-fields", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsMatcherfields", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsMatcherfieldvalues Returns known notification metadata fields and their known values
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsMatcherfieldvalues200Response</returns>
        public GetClusterNotificationsMatcherfieldvalues200Response GetClusterNotificationsMatcherfieldvalues(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatcherfieldvalues200Response> localVarResponse = GetClusterNotificationsMatcherfieldvaluesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsMatcherfieldvalues Returns known notification metadata fields and their known values
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsMatcherfieldvalues200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatcherfieldvalues200Response> GetClusterNotificationsMatcherfieldvaluesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsMatcherfieldvalues";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsMatcherfieldvalues200Response>("/cluster/notifications/matcher-field-values", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsMatcherfieldvalues", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsMatcherfieldvalues Returns known notification metadata fields and their known values
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsMatcherfieldvalues200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsMatcherfieldvalues200Response> GetClusterNotificationsMatcherfieldvaluesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatcherfieldvalues200Response> localVarResponse = await GetClusterNotificationsMatcherfieldvaluesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsMatcherfieldvalues Returns known notification metadata fields and their known values
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsMatcherfieldvalues200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatcherfieldvalues200Response>> GetClusterNotificationsMatcherfieldvaluesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsMatcherfieldvalues";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsMatcherfieldvalues200Response>("/cluster/notifications/matcher-field-values", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsMatcherfieldvalues", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsMatchers Returns a list of all matchers
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsMatchers200Response</returns>
        public GetClusterNotificationsMatchers200Response GetClusterNotificationsMatchers(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatchers200Response> localVarResponse = GetClusterNotificationsMatchersWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsMatchers Returns a list of all matchers
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsMatchers200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatchers200Response> GetClusterNotificationsMatchersWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsMatchers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsMatchers200Response>("/cluster/notifications/matchers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsMatchers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsMatchers Returns a list of all matchers
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsMatchers200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsMatchers200Response> GetClusterNotificationsMatchersAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatchers200Response> localVarResponse = await GetClusterNotificationsMatchersWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsMatchers Returns a list of all matchers
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsMatchers200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatchers200Response>> GetClusterNotificationsMatchersWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsMatchers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsMatchers200Response>("/cluster/notifications/matchers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsMatchers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsMatchersSingle Return a specific matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsMatchersSingle200Response</returns>
        public GetClusterNotificationsMatchersSingle200Response GetClusterNotificationsMatchersSingle(string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatchersSingle200Response> localVarResponse = GetClusterNotificationsMatchersSingleWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsMatchersSingle Return a specific matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsMatchersSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatchersSingle200Response> GetClusterNotificationsMatchersSingleWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsMatchersSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsMatchersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsMatchersSingle200Response>("/cluster/notifications/matchers/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsMatchersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsMatchersSingle Return a specific matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsMatchersSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsMatchersSingle200Response> GetClusterNotificationsMatchersSingleAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatchersSingle200Response> localVarResponse = await GetClusterNotificationsMatchersSingleWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsMatchersSingle Return a specific matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsMatchersSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsMatchersSingle200Response>> GetClusterNotificationsMatchersSingleWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetClusterNotificationsMatchersSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsMatchersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsMatchersSingle200Response>("/cluster/notifications/matchers/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsMatchersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsTargets Returns a list of all entities that can be used as notification targets.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterNotificationsTargets200Response</returns>
        public GetClusterNotificationsTargets200Response GetClusterNotificationsTargets(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsTargets200Response> localVarResponse = GetClusterNotificationsTargetsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsTargets Returns a list of all entities that can be used as notification targets.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterNotificationsTargets200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsTargets200Response> GetClusterNotificationsTargetsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsTargets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterNotificationsTargets200Response>("/cluster/notifications/targets", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsTargets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterNotificationsTargets Returns a list of all entities that can be used as notification targets.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterNotificationsTargets200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterNotificationsTargets200Response> GetClusterNotificationsTargetsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsTargets200Response> localVarResponse = await GetClusterNotificationsTargetsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterNotificationsTargets Returns a list of all entities that can be used as notification targets.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterNotificationsTargets200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterNotificationsTargets200Response>> GetClusterNotificationsTargetsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterNotificationsTargets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterNotificationsTargets200Response>("/cluster/notifications/targets", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterNotificationsTargets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterOptions Get datacenter options. Without &#39;Sys.Audit&#39; on &#39;/&#39; not all options are returned.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterOptions(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterOptionsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterOptions Get datacenter options. Without &#39;Sys.Audit&#39; on &#39;/&#39; not all options are returned.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterOptionsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterOptions Get datacenter options. Without &#39;Sys.Audit&#39; on &#39;/&#39; not all options are returned.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterOptionsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterOptionsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterOptions Get datacenter options. Without &#39;Sys.Audit&#39; on &#39;/&#39; not all options are returned.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterOptionsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterReplication List replication jobs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterReplication200Response</returns>
        public GetClusterReplication200Response GetClusterReplication(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterReplication200Response> localVarResponse = GetClusterReplicationWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterReplication List replication jobs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterReplication200Response> GetClusterReplicationWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterReplication";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterReplication200Response>("/cluster/replication", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterReplication", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterReplication List replication jobs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterReplication200Response> GetClusterReplicationAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterReplication200Response> localVarResponse = await GetClusterReplicationWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterReplication List replication jobs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterReplication200Response>> GetClusterReplicationWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterReplication";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterReplication200Response>("/cluster/replication", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterReplication", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterReplicationSingle Read replication job configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterReplicationSingle200Response</returns>
        public GetClusterReplicationSingle200Response GetClusterReplicationSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterReplicationSingle200Response> localVarResponse = GetClusterReplicationSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterReplicationSingle Read replication job configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterReplicationSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterReplicationSingle200Response> GetClusterReplicationSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterReplicationSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterReplicationSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterReplicationSingle200Response>("/cluster/replication/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterReplicationSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterReplicationSingle Read replication job configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterReplicationSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterReplicationSingle200Response> GetClusterReplicationSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterReplicationSingle200Response> localVarResponse = await GetClusterReplicationSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterReplicationSingle Read replication job configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterReplicationSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterReplicationSingle200Response>> GetClusterReplicationSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterReplicationSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterReplicationSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterReplicationSingle200Response>("/cluster/replication/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterReplicationSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterResources Resources index (cluster wide).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterResources200Response</returns>
        public GetClusterResources200Response GetClusterResources(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterResources200Response> localVarResponse = GetClusterResourcesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterResources Resources index (cluster wide).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterResources200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterResources200Response> GetClusterResourcesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterResources";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterResources200Response>("/cluster/resources", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterResources", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterResources Resources index (cluster wide).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterResources200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterResources200Response> GetClusterResourcesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterResources200Response> localVarResponse = await GetClusterResourcesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterResources Resources index (cluster wide).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterResources200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterResources200Response>> GetClusterResourcesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterResources";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterResources200Response>("/cluster/resources", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterResources", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDN Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHa200Response</returns>
        public GetClusterHa200Response GetClusterSDN(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> localVarResponse = GetClusterSDNWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDN Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHa200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> GetClusterSDNWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDN";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHa200Response>("/cluster/sdn", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDN", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDN Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHa200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHa200Response> GetClusterSDNAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> localVarResponse = await GetClusterSDNWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDN Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHa200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response>> GetClusterSDNWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDN";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHa200Response>("/cluster/sdn", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDN", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNController Read sdn controller configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetClusterSDNController(string controller, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetClusterSDNControllerWithHttpInfo(controller);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNController Read sdn controller configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetClusterSDNControllerWithHttpInfo(string controller, int operationIndex = 0)
        {
            // verify the required parameter 'controller' is set
            if (controller == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'controller' when calling ProxmoxGeneratedApi->GetClusterSDNController");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("controller", ProxmoxSharp.Client.ClientUtils.ParameterToString(controller)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNController";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/cluster/sdn/controllers/{controller}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNController", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNController Read sdn controller configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterSDNControllerAsync(string controller, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetClusterSDNControllerWithHttpInfoAsync(controller, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNController Read sdn controller configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetClusterSDNControllerWithHttpInfoAsync(string controller, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'controller' is set
            if (controller == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'controller' when calling ProxmoxGeneratedApi->GetClusterSDNController");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("controller", ProxmoxSharp.Client.ClientUtils.ParameterToString(controller)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNController";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/cluster/sdn/controllers/{controller}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNController", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNControllers SDN controllers index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSDNControllers200Response</returns>
        public GetClusterSDNControllers200Response GetClusterSDNControllers(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSDNControllers200Response> localVarResponse = GetClusterSDNControllersWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNControllers SDN controllers index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSDNControllers200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSDNControllers200Response> GetClusterSDNControllersWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNControllers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSDNControllers200Response>("/cluster/sdn/controllers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNControllers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNControllers SDN controllers index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSDNControllers200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSDNControllers200Response> GetClusterSDNControllersAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSDNControllers200Response> localVarResponse = await GetClusterSDNControllersWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNControllers SDN controllers index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSDNControllers200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSDNControllers200Response>> GetClusterSDNControllersWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNControllers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSDNControllers200Response>("/cluster/sdn/controllers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNControllers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNVnet Read sdn vnet configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetClusterSDNVnet(string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetClusterSDNVnetWithHttpInfo(vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNVnet Read sdn vnet configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetClusterSDNVnetWithHttpInfo(string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSDNVnet");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNVnet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNVnet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNVnet Read sdn vnet configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterSDNVnetAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetClusterSDNVnetWithHttpInfoAsync(vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNVnet Read sdn vnet configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetClusterSDNVnetWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSDNVnet");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNVnet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNVnet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNVnets SDN vnets index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSDNVnets200Response</returns>
        public GetClusterSDNVnets200Response GetClusterSDNVnets(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSDNVnets200Response> localVarResponse = GetClusterSDNVnetsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNVnets SDN vnets index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSDNVnets200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSDNVnets200Response> GetClusterSDNVnetsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNVnets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSDNVnets200Response>("/cluster/sdn/vnets", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNVnets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNVnets SDN vnets index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSDNVnets200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSDNVnets200Response> GetClusterSDNVnetsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSDNVnets200Response> localVarResponse = await GetClusterSDNVnetsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNVnets SDN vnets index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSDNVnets200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSDNVnets200Response>> GetClusterSDNVnetsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNVnets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSDNVnets200Response>("/cluster/sdn/vnets", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNVnets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNZone Read sdn zone configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetClusterSDNZone(string zone, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetClusterSDNZoneWithHttpInfo(zone);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNZone Read sdn zone configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetClusterSDNZoneWithHttpInfo(string zone, int operationIndex = 0)
        {
            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetClusterSDNZone");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/cluster/sdn/zones/{zone}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNZone Read sdn zone configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterSDNZoneAsync(string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetClusterSDNZoneWithHttpInfoAsync(zone, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNZone Read sdn zone configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetClusterSDNZoneWithHttpInfoAsync(string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetClusterSDNZone");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/cluster/sdn/zones/{zone}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNZones SDN zones index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSDNZones200Response</returns>
        public GetClusterSDNZones200Response GetClusterSDNZones(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSDNZones200Response> localVarResponse = GetClusterSDNZonesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNZones SDN zones index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSDNZones200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSDNZones200Response> GetClusterSDNZonesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNZones";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSDNZones200Response>("/cluster/sdn/zones", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNZones", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSDNZones SDN zones index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSDNZones200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSDNZones200Response> GetClusterSDNZonesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSDNZones200Response> localVarResponse = await GetClusterSDNZonesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSDNZones SDN zones index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSDNZones200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSDNZones200Response>> GetClusterSDNZonesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSDNZones";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSDNZones200Response>("/cluster/sdn/zones", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSDNZones", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnDns SDN dns index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnDns200Response</returns>
        public GetClusterSdnDns200Response GetClusterSdnDns(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnDns200Response> localVarResponse = GetClusterSdnDnsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnDns SDN dns index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnDns200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnDns200Response> GetClusterSdnDnsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnDns";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnDns200Response>("/cluster/sdn/dns", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnDns", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnDns SDN dns index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnDns200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnDns200Response> GetClusterSdnDnsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnDns200Response> localVarResponse = await GetClusterSdnDnsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnDns SDN dns index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnDns200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnDns200Response>> GetClusterSdnDnsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnDns";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnDns200Response>("/cluster/sdn/dns", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnDns", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnDnsSingle Read sdn dns configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterSdnDnsSingle(string dns, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterSdnDnsSingleWithHttpInfo(dns);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnDnsSingle Read sdn dns configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterSdnDnsSingleWithHttpInfo(string dns, int operationIndex = 0)
        {
            // verify the required parameter 'dns' is set
            if (dns == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'dns' when calling ProxmoxGeneratedApi->GetClusterSdnDnsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("dns", ProxmoxSharp.Client.ClientUtils.ParameterToString(dns)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnDnsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/sdn/dns/{dns}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnDnsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnDnsSingle Read sdn dns configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterSdnDnsSingleAsync(string dns, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterSdnDnsSingleWithHttpInfoAsync(dns, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnDnsSingle Read sdn dns configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterSdnDnsSingleWithHttpInfoAsync(string dns, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'dns' is set
            if (dns == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'dns' when calling ProxmoxGeneratedApi->GetClusterSdnDnsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("dns", ProxmoxSharp.Client.ClientUtils.ParameterToString(dns)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnDnsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/sdn/dns/{dns}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnDnsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabrics SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetClusterSdnFabrics(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetClusterSdnFabricsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabrics SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetClusterSdnFabricsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabrics";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/cluster/sdn/fabrics", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabrics", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabrics SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetClusterSdnFabricsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetClusterSdnFabricsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabrics SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetClusterSdnFabricsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabrics";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/cluster/sdn/fabrics", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabrics", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsAll SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsAll200Response</returns>
        public GetClusterSdnFabricsAll200Response GetClusterSdnFabricsAll(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsAll200Response> localVarResponse = GetClusterSdnFabricsAllWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsAll SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsAll200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsAll200Response> GetClusterSdnFabricsAllWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsAll";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabricsAll200Response>("/cluster/sdn/fabrics/all", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsAll", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsAll SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsAll200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabricsAll200Response> GetClusterSdnFabricsAllAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsAll200Response> localVarResponse = await GetClusterSdnFabricsAllWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsAll SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsAll200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsAll200Response>> GetClusterSdnFabricsAllWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsAll";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabricsAll200Response>("/cluster/sdn/fabrics/all", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsAll", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsFabric SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsFabric200Response</returns>
        public GetClusterSdnFabricsFabric200Response GetClusterSdnFabricsFabric(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsFabric200Response> localVarResponse = GetClusterSdnFabricsFabricWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsFabric SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsFabric200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsFabric200Response> GetClusterSdnFabricsFabricWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsFabric";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabricsFabric200Response>("/cluster/sdn/fabrics/fabric", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsFabric", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsFabric SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsFabric200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabricsFabric200Response> GetClusterSdnFabricsFabricAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsFabric200Response> localVarResponse = await GetClusterSdnFabricsFabricWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsFabric SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsFabric200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsFabric200Response>> GetClusterSdnFabricsFabricWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsFabric";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabricsFabric200Response>("/cluster/sdn/fabrics/fabric", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsFabric", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsFabricSingle Update a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsFabricSingle200Response</returns>
        public GetClusterSdnFabricsFabricSingle200Response GetClusterSdnFabricsFabricSingle(string id, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsFabricSingle200Response> localVarResponse = GetClusterSdnFabricsFabricSingleWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsFabricSingle Update a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsFabricSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsFabricSingle200Response> GetClusterSdnFabricsFabricSingleWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterSdnFabricsFabricSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsFabricSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabricsFabricSingle200Response>("/cluster/sdn/fabrics/fabric/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsFabricSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsFabricSingle Update a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsFabricSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabricsFabricSingle200Response> GetClusterSdnFabricsFabricSingleAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsFabricSingle200Response> localVarResponse = await GetClusterSdnFabricsFabricSingleWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsFabricSingle Update a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsFabricSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsFabricSingle200Response>> GetClusterSdnFabricsFabricSingleWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetClusterSdnFabricsFabricSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsFabricSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabricsFabricSingle200Response>("/cluster/sdn/fabrics/fabric/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsFabricSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsNode SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsNode200Response</returns>
        public GetClusterSdnFabricsNode200Response GetClusterSdnFabricsNode(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsNode200Response> localVarResponse = GetClusterSdnFabricsNodeWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsNode SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsNode200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsNode200Response> GetClusterSdnFabricsNodeWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsNode";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabricsNode200Response>("/cluster/sdn/fabrics/node", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsNode", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsNode SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsNode200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabricsNode200Response> GetClusterSdnFabricsNodeAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsNode200Response> localVarResponse = await GetClusterSdnFabricsNodeWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsNode SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsNode200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsNode200Response>> GetClusterSdnFabricsNodeWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsNode";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabricsNode200Response>("/cluster/sdn/fabrics/node", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsNode", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsNodeSingle SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabricsNode200Response</returns>
        public GetClusterSdnFabricsNode200Response GetClusterSdnFabricsNodeSingle(string fabricId, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsNode200Response> localVarResponse = GetClusterSdnFabricsNodeSingleWithHttpInfo(fabricId);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsNodeSingle SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabricsNode200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsNode200Response> GetClusterSdnFabricsNodeSingleWithHttpInfo(string fabricId, int operationIndex = 0)
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->GetClusterSdnFabricsNodeSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsNodeSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabricsNode200Response>("/cluster/sdn/fabrics/node/{fabric_id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsNodeSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsNodeSingle SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabricsNode200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabricsNode200Response> GetClusterSdnFabricsNodeSingleAsync(string fabricId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsNode200Response> localVarResponse = await GetClusterSdnFabricsNodeSingleWithHttpInfoAsync(fabricId, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsNodeSingle SDN Fabrics Index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabricsNode200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabricsNode200Response>> GetClusterSdnFabricsNodeSingleWithHttpInfoAsync(string fabricId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->GetClusterSdnFabricsNodeSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsNodeSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabricsNode200Response>("/cluster/sdn/fabrics/node/{fabric_id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsNodeSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsNodeSingleSingle Get a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetClusterSdnFabricsNodeSingleSingle(string fabricId, string nodeId, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetClusterSdnFabricsNodeSingleSingleWithHttpInfo(fabricId, nodeId);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsNodeSingleSingle Get a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetClusterSdnFabricsNodeSingleSingleWithHttpInfo(string fabricId, string nodeId, int operationIndex = 0)
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->GetClusterSdnFabricsNodeSingleSingle");
            }

            // verify the required parameter 'nodeId' is set
            if (nodeId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'nodeId' when calling ProxmoxGeneratedApi->GetClusterSdnFabricsNodeSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter
            localVarRequestOptions.PathParameters.Add("node_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(nodeId)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsNodeSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/cluster/sdn/fabrics/node/{fabric_id}/{node_id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsNodeSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnFabricsNodeSingleSingle Get a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetClusterSdnFabricsNodeSingleSingleAsync(string fabricId, string nodeId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(fabricId, nodeId, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnFabricsNodeSingleSingle Get a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(string fabricId, string nodeId, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->GetClusterSdnFabricsNodeSingleSingle");
            }

            // verify the required parameter 'nodeId' is set
            if (nodeId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'nodeId' when calling ProxmoxGeneratedApi->GetClusterSdnFabricsNodeSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter
            localVarRequestOptions.PathParameters.Add("node_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(nodeId)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnFabricsNodeSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/cluster/sdn/fabrics/node/{fabric_id}/{node_id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnFabricsNodeSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnIpams SDN ipams index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnIpams200Response</returns>
        public GetClusterSdnIpams200Response GetClusterSdnIpams(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnIpams200Response> localVarResponse = GetClusterSdnIpamsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnIpams SDN ipams index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnIpams200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnIpams200Response> GetClusterSdnIpamsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnIpams";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnIpams200Response>("/cluster/sdn/ipams", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnIpams", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnIpams SDN ipams index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnIpams200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnIpams200Response> GetClusterSdnIpamsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnIpams200Response> localVarResponse = await GetClusterSdnIpamsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnIpams SDN ipams index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnIpams200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnIpams200Response>> GetClusterSdnIpamsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnIpams";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnIpams200Response>("/cluster/sdn/ipams", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnIpams", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnIpamsSingle Read sdn ipam configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterSdnIpamsSingle(string ipam, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterSdnIpamsSingleWithHttpInfo(ipam);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnIpamsSingle Read sdn ipam configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterSdnIpamsSingleWithHttpInfo(string ipam, int operationIndex = 0)
        {
            // verify the required parameter 'ipam' is set
            if (ipam == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'ipam' when calling ProxmoxGeneratedApi->GetClusterSdnIpamsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("ipam", ProxmoxSharp.Client.ClientUtils.ParameterToString(ipam)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnIpamsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/sdn/ipams/{ipam}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnIpamsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnIpamsSingle Read sdn ipam configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterSdnIpamsSingleAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterSdnIpamsSingleWithHttpInfoAsync(ipam, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnIpamsSingle Read sdn ipam configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterSdnIpamsSingleWithHttpInfoAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'ipam' is set
            if (ipam == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'ipam' when calling ProxmoxGeneratedApi->GetClusterSdnIpamsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("ipam", ProxmoxSharp.Client.ClientUtils.ParameterToString(ipam)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnIpamsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/sdn/ipams/{ipam}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnIpamsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnIpamsSingleStatus List PVE IPAM Entries
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnIpamsSingleStatus200Response</returns>
        public GetClusterSdnIpamsSingleStatus200Response GetClusterSdnIpamsSingleStatus(string ipam, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnIpamsSingleStatus200Response> localVarResponse = GetClusterSdnIpamsSingleStatusWithHttpInfo(ipam);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnIpamsSingleStatus List PVE IPAM Entries
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnIpamsSingleStatus200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnIpamsSingleStatus200Response> GetClusterSdnIpamsSingleStatusWithHttpInfo(string ipam, int operationIndex = 0)
        {
            // verify the required parameter 'ipam' is set
            if (ipam == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'ipam' when calling ProxmoxGeneratedApi->GetClusterSdnIpamsSingleStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("ipam", ProxmoxSharp.Client.ClientUtils.ParameterToString(ipam)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnIpamsSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnIpamsSingleStatus200Response>("/cluster/sdn/ipams/{ipam}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnIpamsSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnIpamsSingleStatus List PVE IPAM Entries
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnIpamsSingleStatus200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnIpamsSingleStatus200Response> GetClusterSdnIpamsSingleStatusAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnIpamsSingleStatus200Response> localVarResponse = await GetClusterSdnIpamsSingleStatusWithHttpInfoAsync(ipam, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnIpamsSingleStatus List PVE IPAM Entries
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnIpamsSingleStatus200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnIpamsSingleStatus200Response>> GetClusterSdnIpamsSingleStatusWithHttpInfoAsync(string ipam, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'ipam' is set
            if (ipam == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'ipam' when calling ProxmoxGeneratedApi->GetClusterSdnIpamsSingleStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("ipam", ProxmoxSharp.Client.ClientUtils.ParameterToString(ipam)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnIpamsSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnIpamsSingleStatus200Response>("/cluster/sdn/ipams/{ipam}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnIpamsSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterSdnVnetsSingleFirewall(string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterSdnVnetsSingleFirewallWithHttpInfo(vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterSdnVnetsSingleFirewallWithHttpInfo(string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleFirewall");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/sdn/vnets/{vnet}/firewall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterSdnVnetsSingleFirewallAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterSdnVnetsSingleFirewallWithHttpInfoAsync(vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterSdnVnetsSingleFirewallWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleFirewall");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/sdn/vnets/{vnet}/firewall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallOptions Get vnet firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnVnetsSingleFirewallOptions200Response</returns>
        public GetClusterSdnVnetsSingleFirewallOptions200Response GetClusterSdnVnetsSingleFirewallOptions(string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnVnetsSingleFirewallOptions200Response> localVarResponse = GetClusterSdnVnetsSingleFirewallOptionsWithHttpInfo(vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallOptions Get vnet firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnVnetsSingleFirewallOptions200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnVnetsSingleFirewallOptions200Response> GetClusterSdnVnetsSingleFirewallOptionsWithHttpInfo(string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleFirewallOptions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnVnetsSingleFirewallOptions200Response>("/cluster/sdn/vnets/{vnet}/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallOptions Get vnet firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnVnetsSingleFirewallOptions200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnVnetsSingleFirewallOptions200Response> GetClusterSdnVnetsSingleFirewallOptionsAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnVnetsSingleFirewallOptions200Response> localVarResponse = await GetClusterSdnVnetsSingleFirewallOptionsWithHttpInfoAsync(vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallOptions Get vnet firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnVnetsSingleFirewallOptions200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnVnetsSingleFirewallOptions200Response>> GetClusterSdnVnetsSingleFirewallOptionsWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleFirewallOptions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnVnetsSingleFirewallOptions200Response>("/cluster/sdn/vnets/{vnet}/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        public GetClusterFirewallGroupRules200Response GetClusterSdnVnetsSingleFirewallRules(string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = GetClusterSdnVnetsSingleFirewallRulesWithHttpInfo(vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> GetClusterSdnVnetsSingleFirewallRulesWithHttpInfo(string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleFirewallRules");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRules200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetClusterSdnVnetsSingleFirewallRulesAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = await GetClusterSdnVnetsSingleFirewallRulesWithHttpInfoAsync(vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response>> GetClusterSdnVnetsSingleFirewallRulesWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleFirewallRules");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRules200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRulesSingle Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        public GetClusterFirewallGroupRule200Response GetClusterSdnVnetsSingleFirewallRulesSingle(int pos, string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = GetClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(pos, vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRulesSingle Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> GetClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(int pos, string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleFirewallRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRule200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRulesSingle Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetClusterSdnVnetsSingleFirewallRulesSingleAsync(int pos, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = await GetClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(pos, vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleFirewallRulesSingle Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response>> GetClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(int pos, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleFirewallRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRule200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleSubnets SDN subnets index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetClusterSdnVnetsSingleSubnets(string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetClusterSdnVnetsSingleSubnetsWithHttpInfo(vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleSubnets SDN subnets index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetClusterSdnVnetsSingleSubnetsWithHttpInfo(string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleSubnets");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleSubnets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/cluster/sdn/vnets/{vnet}/subnets", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleSubnets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleSubnets SDN subnets index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetClusterSdnVnetsSingleSubnetsAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetClusterSdnVnetsSingleSubnetsWithHttpInfoAsync(vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleSubnets SDN subnets index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetClusterSdnVnetsSingleSubnetsWithHttpInfoAsync(string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleSubnets");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleSubnets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/cluster/sdn/vnets/{vnet}/subnets", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleSubnets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleSubnetsSingle Read sdn subnet configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetClusterSdnVnetsSingleSubnetsSingle(string subnet, string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(subnet, vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleSubnetsSingle Read sdn subnet configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(string subnet, string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'subnet' is set
            if (subnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'subnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleSubnetsSingle");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleSubnetsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("subnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(subnet)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleSubnetsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/cluster/sdn/vnets/{vnet}/subnets/{subnet}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleSubnetsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleSubnetsSingle Read sdn subnet configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetClusterSdnVnetsSingleSubnetsSingleAsync(string subnet, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(subnet, vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterSdnVnetsSingleSubnetsSingle Read sdn subnet configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(string subnet, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'subnet' is set
            if (subnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'subnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleSubnetsSingle");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetClusterSdnVnetsSingleSubnetsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("subnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(subnet)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterSdnVnetsSingleSubnetsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/cluster/sdn/vnets/{vnet}/subnets/{subnet}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterSdnVnetsSingleSubnetsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterStatus Get cluster status information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterStatus200Response</returns>
        public GetClusterStatus200Response GetClusterStatus(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterStatus200Response> localVarResponse = GetClusterStatusWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterStatus Get cluster status information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterStatus200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterStatus200Response> GetClusterStatusWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterStatus200Response>("/cluster/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterStatus Get cluster status information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterStatus200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterStatus200Response> GetClusterStatusAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterStatus200Response> localVarResponse = await GetClusterStatusWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterStatus Get cluster status information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterStatus200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterStatus200Response>> GetClusterStatusWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterStatus200Response>("/cluster/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterTasks List recent tasks (cluster wide).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterTasks200Response</returns>
        public GetClusterTasks200Response GetClusterTasks(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterTasks200Response> localVarResponse = GetClusterTasksWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterTasks List recent tasks (cluster wide).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterTasks200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterTasks200Response> GetClusterTasksWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterTasks";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterTasks200Response>("/cluster/tasks", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterTasks", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getClusterTasks List recent tasks (cluster wide).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterTasks200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterTasks200Response> GetClusterTasksAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterTasks200Response> localVarResponse = await GetClusterTasksWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getClusterTasks List recent tasks (cluster wide).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterTasks200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterTasks200Response>> GetClusterTasksWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetClusterTasks";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterTasks200Response>("/cluster/tasks", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClusterTasks", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getCurrentVMStatus Get virtual machine status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCurrentVMStatus200Response</returns>
        public GetCurrentVMStatus200Response GetCurrentVMStatus(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCurrentVMStatus200Response> localVarResponse = GetCurrentVMStatusWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getCurrentVMStatus Get virtual machine status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCurrentVMStatus200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCurrentVMStatus200Response> GetCurrentVMStatusWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetCurrentVMStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetCurrentVMStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCurrentVMStatus200Response>("/nodes/{node}/qemu/{vmid}/status/current", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetCurrentVMStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getCurrentVMStatus Get virtual machine status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCurrentVMStatus200Response</returns>
        public async System.Threading.Tasks.Task<GetCurrentVMStatus200Response> GetCurrentVMStatusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCurrentVMStatus200Response> localVarResponse = await GetCurrentVMStatusWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getCurrentVMStatus Get virtual machine status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCurrentVMStatus200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCurrentVMStatus200Response>> GetCurrentVMStatusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetCurrentVMStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetCurrentVMStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCurrentVMStatus200Response>("/nodes/{node}/qemu/{vmid}/status/current", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetCurrentVMStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNode Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNode(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodeWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNode Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodeWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNode");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNode";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNode", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNode Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodeAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodeWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNode Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodeWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNode");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNode";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNode", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodeFirewall(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodeFirewallWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodeFirewallWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeFirewall");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/firewall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodeFirewallAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodeFirewallWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodeFirewallWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeFirewall");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/firewall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeFirewallOptions Get host firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeFirewallOptions200Response</returns>
        public GetNodeFirewallOptions200Response GetNodeFirewallOptions(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeFirewallOptions200Response> localVarResponse = GetNodeFirewallOptionsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeFirewallOptions Get host firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeFirewallOptions200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodeFirewallOptions200Response> GetNodeFirewallOptionsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeFirewallOptions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodeFirewallOptions200Response>("/nodes/{node}/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeFirewallOptions Get host firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeFirewallOptions200Response</returns>
        public async System.Threading.Tasks.Task<GetNodeFirewallOptions200Response> GetNodeFirewallOptionsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeFirewallOptions200Response> localVarResponse = await GetNodeFirewallOptionsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeFirewallOptions Get host firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeFirewallOptions200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodeFirewallOptions200Response>> GetNodeFirewallOptionsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeFirewallOptions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodeFirewallOptions200Response>("/nodes/{node}/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        public GetClusterFirewallGroupRule200Response GetNodeFirewallRule(string node, int pos, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = GetNodeFirewallRuleWithHttpInfo(node, pos);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> GetNodeFirewallRuleWithHttpInfo(string node, int pos, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeFirewallRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRule200Response>("/nodes/{node}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetNodeFirewallRuleAsync(string node, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = await GetNodeFirewallRuleWithHttpInfoAsync(node, pos, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response>> GetNodeFirewallRuleWithHttpInfoAsync(string node, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeFirewallRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRule200Response>("/nodes/{node}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        public GetClusterFirewallGroupRules200Response GetNodeFirewallRules(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = GetNodeFirewallRulesWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> GetNodeFirewallRulesWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeFirewallRules");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRules200Response>("/nodes/{node}/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetNodeFirewallRulesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = await GetNodeFirewallRulesWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response>> GetNodeFirewallRulesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeFirewallRules");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRules200Response>("/nodes/{node}/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeRRD Read node RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMRRD200Response</returns>
        public GetVMRRD200Response GetNodeRRD(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> localVarResponse = GetNodeRRDWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeRRD Read node RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMRRD200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> GetNodeRRDWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeRRD");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeRRD";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMRRD200Response>("/nodes/{node}/rrd", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeRRD", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeRRD Read node RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMRRD200Response</returns>
        public async System.Threading.Tasks.Task<GetVMRRD200Response> GetNodeRRDAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> localVarResponse = await GetNodeRRDWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeRRD Read node RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMRRD200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response>> GetNodeRRDWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeRRD");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeRRD";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMRRD200Response>("/nodes/{node}/rrd", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeRRD", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeRRDData Read node RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodeRRDData(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodeRRDDataWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeRRDData Read node RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodeRRDDataWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeRRDData");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeRRDData";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/rrddata", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeRRDData", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeRRDData Read node RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodeRRDDataAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodeRRDDataWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeRRDData Read node RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodeRRDDataWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeRRDData");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeRRDData";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/rrddata", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeRRDData", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeSDN SDN index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodeSDN(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodeSDNWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeSDN SDN index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodeSDNWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeSDN");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeSDN";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/sdn", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeSDN", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeSDN SDN index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodeSDNAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodeSDNWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeSDN SDN index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodeSDNWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeSDN");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeSDN";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/sdn", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeSDN", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeSDNZone Directory index for SDN zone status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetNodeSDNZone(string node, string zone, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetNodeSDNZoneWithHttpInfo(node, zone);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeSDNZone Directory index for SDN zone status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetNodeSDNZoneWithHttpInfo(string node, string zone, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeSDNZone");
            }

            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetNodeSDNZone");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/sdn/zones/{zone}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeSDNZone Directory index for SDN zone status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodeSDNZoneAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetNodeSDNZoneWithHttpInfoAsync(node, zone, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeSDNZone Directory index for SDN zone status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetNodeSDNZoneWithHttpInfoAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeSDNZone");
            }

            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetNodeSDNZone");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/sdn/zones/{zone}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeSDNZoneContent List zone content.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeSDNZoneContent200Response</returns>
        public GetNodeSDNZoneContent200Response GetNodeSDNZoneContent(string node, string zone, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeSDNZoneContent200Response> localVarResponse = GetNodeSDNZoneContentWithHttpInfo(node, zone);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeSDNZoneContent List zone content.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeSDNZoneContent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodeSDNZoneContent200Response> GetNodeSDNZoneContentWithHttpInfo(string node, string zone, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeSDNZoneContent");
            }

            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetNodeSDNZoneContent");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeSDNZoneContent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodeSDNZoneContent200Response>("/nodes/{node}/sdn/zones/{zone}/content", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeSDNZoneContent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeSDNZoneContent List zone content.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeSDNZoneContent200Response</returns>
        public async System.Threading.Tasks.Task<GetNodeSDNZoneContent200Response> GetNodeSDNZoneContentAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeSDNZoneContent200Response> localVarResponse = await GetNodeSDNZoneContentWithHttpInfoAsync(node, zone, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeSDNZoneContent List zone content.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeSDNZoneContent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodeSDNZoneContent200Response>> GetNodeSDNZoneContentWithHttpInfoAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeSDNZoneContent");
            }

            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetNodeSDNZoneContent");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeSDNZoneContent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodeSDNZoneContent200Response>("/nodes/{node}/sdn/zones/{zone}/content", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeSDNZoneContent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeSDNZones Get status for all zones.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeSDNZones200Response</returns>
        public GetNodeSDNZones200Response GetNodeSDNZones(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeSDNZones200Response> localVarResponse = GetNodeSDNZonesWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeSDNZones Get status for all zones.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeSDNZones200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodeSDNZones200Response> GetNodeSDNZonesWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeSDNZones");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeSDNZones";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodeSDNZones200Response>("/nodes/{node}/sdn/zones", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeSDNZones", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeSDNZones Get status for all zones.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeSDNZones200Response</returns>
        public async System.Threading.Tasks.Task<GetNodeSDNZones200Response> GetNodeSDNZonesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeSDNZones200Response> localVarResponse = await GetNodeSDNZonesWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeSDNZones Get status for all zones.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeSDNZones200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodeSDNZones200Response>> GetNodeSDNZonesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeSDNZones");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeSDNZones";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodeSDNZones200Response>("/nodes/{node}/sdn/zones", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeSDNZones", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeTask getNodeTask
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodeTask(string node, string upid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodeTaskWithHttpInfo(node, upid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeTask getNodeTask
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodeTaskWithHttpInfo(string node, string upid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeTask");
            }

            // verify the required parameter 'upid' is set
            if (upid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'upid' when calling ProxmoxGeneratedApi->GetNodeTask");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("upid", ProxmoxSharp.Client.ClientUtils.ParameterToString(upid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeTask";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/tasks/{upid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeTask", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeTask getNodeTask
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodeTaskAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodeTaskWithHttpInfoAsync(node, upid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeTask getNodeTask
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodeTaskWithHttpInfoAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeTask");
            }

            // verify the required parameter 'upid' is set
            if (upid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'upid' when calling ProxmoxGeneratedApi->GetNodeTask");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("upid", ProxmoxSharp.Client.ClientUtils.ParameterToString(upid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeTask";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/tasks/{upid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeTask", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeTaskLog Read task log.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public GetNodesSingleQemuSingleFirewallLog200Response GetNodeTaskLog(string node, string upid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = GetNodeTaskLogWithHttpInfo(node, upid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeTaskLog Read task log.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodeTaskLogWithHttpInfo(string node, string upid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeTaskLog");
            }

            // verify the required parameter 'upid' is set
            if (upid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'upid' when calling ProxmoxGeneratedApi->GetNodeTaskLog");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("upid", ProxmoxSharp.Client.ClientUtils.ParameterToString(upid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeTaskLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/tasks/{upid}/log", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeTaskLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeTaskLog Read task log.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodeTaskLogAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = await GetNodeTaskLogWithHttpInfoAsync(node, upid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeTaskLog Read task log.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodeTaskLogWithHttpInfoAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeTaskLog");
            }

            // verify the required parameter 'upid' is set
            if (upid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'upid' when calling ProxmoxGeneratedApi->GetNodeTaskLog");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("upid", ProxmoxSharp.Client.ClientUtils.ParameterToString(upid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeTaskLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/tasks/{upid}/log", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeTaskLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeTaskStatus Read task status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeTaskStatus200Response</returns>
        public GetNodeTaskStatus200Response GetNodeTaskStatus(string node, string upid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeTaskStatus200Response> localVarResponse = GetNodeTaskStatusWithHttpInfo(node, upid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeTaskStatus Read task status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeTaskStatus200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodeTaskStatus200Response> GetNodeTaskStatusWithHttpInfo(string node, string upid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeTaskStatus");
            }

            // verify the required parameter 'upid' is set
            if (upid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'upid' when calling ProxmoxGeneratedApi->GetNodeTaskStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("upid", ProxmoxSharp.Client.ClientUtils.ParameterToString(upid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeTaskStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodeTaskStatus200Response>("/nodes/{node}/tasks/{upid}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeTaskStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeTaskStatus Read task status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeTaskStatus200Response</returns>
        public async System.Threading.Tasks.Task<GetNodeTaskStatus200Response> GetNodeTaskStatusAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeTaskStatus200Response> localVarResponse = await GetNodeTaskStatusWithHttpInfoAsync(node, upid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeTaskStatus Read task status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeTaskStatus200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodeTaskStatus200Response>> GetNodeTaskStatusWithHttpInfoAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeTaskStatus");
            }

            // verify the required parameter 'upid' is set
            if (upid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'upid' when calling ProxmoxGeneratedApi->GetNodeTaskStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("upid", ProxmoxSharp.Client.ClientUtils.ParameterToString(upid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeTaskStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodeTaskStatus200Response>("/nodes/{node}/tasks/{upid}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeTaskStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeTasks Read task list for one node (finished tasks).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodeTasks200Response</returns>
        public GetNodeTasks200Response GetNodeTasks(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeTasks200Response> localVarResponse = GetNodeTasksWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeTasks Read task list for one node (finished tasks).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodeTasks200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodeTasks200Response> GetNodeTasksWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeTasks");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeTasks";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodeTasks200Response>("/nodes/{node}/tasks", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeTasks", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodeTasks Read task list for one node (finished tasks).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodeTasks200Response</returns>
        public async System.Threading.Tasks.Task<GetNodeTasks200Response> GetNodeTasksAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodeTasks200Response> localVarResponse = await GetNodeTasksWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodeTasks Read task list for one node (finished tasks).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodeTasks200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodeTasks200Response>> GetNodeTasksWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodeTasks");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodeTasks";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodeTasks200Response>("/nodes/{node}/tasks", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodeTasks", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodes Cluster node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodes200Response</returns>
        public GetNodes200Response GetNodes(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodes200Response> localVarResponse = GetNodesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodes Cluster node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodes200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodes200Response> GetNodesWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodes";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodes200Response>("/nodes", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodes", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodes Cluster node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodes200Response</returns>
        public async System.Threading.Tasks.Task<GetNodes200Response> GetNodesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodes200Response> localVarResponse = await GetNodesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodes Cluster node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodes200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodes200Response>> GetNodesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodes";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodes200Response>("/nodes", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodes", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAplinfo Get list of appliances.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleAplinfo(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleAplinfoWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAplinfo Get list of appliances.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleAplinfoWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAplinfo");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAplinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/aplinfo", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAplinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAplinfo Get list of appliances.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleAplinfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleAplinfoWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAplinfo Get list of appliances.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleAplinfoWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAplinfo");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAplinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/aplinfo", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAplinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleApt Directory index for apt (Advanced Package Tool).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHa200Response</returns>
        public GetClusterHa200Response GetNodesSingleApt(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> localVarResponse = GetNodesSingleAptWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleApt Directory index for apt (Advanced Package Tool).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHa200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> GetNodesSingleAptWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleApt");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleApt";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHa200Response>("/nodes/{node}/apt", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleApt", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleApt Directory index for apt (Advanced Package Tool).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHa200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHa200Response> GetNodesSingleAptAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> localVarResponse = await GetNodesSingleAptWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleApt Directory index for apt (Advanced Package Tool).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHa200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response>> GetNodesSingleAptWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleApt");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleApt";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHa200Response>("/nodes/{node}/apt", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleApt", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAptChangelog Get package changelogs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetNodesSingleAptChangelog(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetNodesSingleAptChangelogWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAptChangelog Get package changelogs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetNodesSingleAptChangelogWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAptChangelog");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAptChangelog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/nodes/{node}/apt/changelog", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAptChangelog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAptChangelog Get package changelogs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleAptChangelogAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetNodesSingleAptChangelogWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAptChangelog Get package changelogs.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetNodesSingleAptChangelogWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAptChangelog");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAptChangelog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/nodes/{node}/apt/changelog", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAptChangelog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAptRepositories Get APT repository information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleAptRepositories200Response</returns>
        public GetNodesSingleAptRepositories200Response GetNodesSingleAptRepositories(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptRepositories200Response> localVarResponse = GetNodesSingleAptRepositoriesWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAptRepositories Get APT repository information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleAptRepositories200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptRepositories200Response> GetNodesSingleAptRepositoriesWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAptRepositories");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAptRepositories";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleAptRepositories200Response>("/nodes/{node}/apt/repositories", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAptRepositories", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAptRepositories Get APT repository information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleAptRepositories200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleAptRepositories200Response> GetNodesSingleAptRepositoriesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptRepositories200Response> localVarResponse = await GetNodesSingleAptRepositoriesWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAptRepositories Get APT repository information.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleAptRepositories200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptRepositories200Response>> GetNodesSingleAptRepositoriesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAptRepositories");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAptRepositories";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleAptRepositories200Response>("/nodes/{node}/apt/repositories", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAptRepositories", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAptUpdate List available updates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleAptUpdate200Response</returns>
        public GetNodesSingleAptUpdate200Response GetNodesSingleAptUpdate(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptUpdate200Response> localVarResponse = GetNodesSingleAptUpdateWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAptUpdate List available updates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleAptUpdate200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptUpdate200Response> GetNodesSingleAptUpdateWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAptUpdate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAptUpdate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleAptUpdate200Response>("/nodes/{node}/apt/update", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAptUpdate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAptUpdate List available updates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleAptUpdate200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleAptUpdate200Response> GetNodesSingleAptUpdateAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptUpdate200Response> localVarResponse = await GetNodesSingleAptUpdateWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAptUpdate List available updates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleAptUpdate200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptUpdate200Response>> GetNodesSingleAptUpdateWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAptUpdate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAptUpdate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleAptUpdate200Response>("/nodes/{node}/apt/update", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAptUpdate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAptVersions Get package information for important Proxmox packages.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleAptVersions200Response</returns>
        public GetNodesSingleAptVersions200Response GetNodesSingleAptVersions(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptVersions200Response> localVarResponse = GetNodesSingleAptVersionsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAptVersions Get package information for important Proxmox packages.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleAptVersions200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptVersions200Response> GetNodesSingleAptVersionsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAptVersions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAptVersions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleAptVersions200Response>("/nodes/{node}/apt/versions", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAptVersions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleAptVersions Get package information for important Proxmox packages.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleAptVersions200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleAptVersions200Response> GetNodesSingleAptVersionsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptVersions200Response> localVarResponse = await GetNodesSingleAptVersionsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleAptVersions Get package information for important Proxmox packages.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleAptVersions200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleAptVersions200Response>> GetNodesSingleAptVersionsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleAptVersions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleAptVersions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleAptVersions200Response>("/nodes/{node}/apt/versions", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleAptVersions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilities Node capabilities index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleCapabilities(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleCapabilitiesWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilities Node capabilities index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleCapabilitiesWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilities");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilities";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/capabilities", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilities", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilities Node capabilities index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCapabilitiesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleCapabilitiesWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilities Node capabilities index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleCapabilitiesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilities");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilities";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/capabilities", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilities", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemu QEMU capabilities index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleCapabilitiesQemu(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleCapabilitiesQemuWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemu QEMU capabilities index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleCapabilitiesQemuWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemu");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemu";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/capabilities/qemu", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemu", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemu QEMU capabilities index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCapabilitiesQemuAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleCapabilitiesQemuWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemu QEMU capabilities index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleCapabilitiesQemuWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemu");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemu";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/capabilities/qemu", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemu", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpu List all custom and default CPU models.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCapabilitiesQemuCpu200Response</returns>
        public GetNodesSingleCapabilitiesQemuCpu200Response GetNodesSingleCapabilitiesQemuCpu(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuCpu200Response> localVarResponse = GetNodesSingleCapabilitiesQemuCpuWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpu List all custom and default CPU models.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCapabilitiesQemuCpu200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuCpu200Response> GetNodesSingleCapabilitiesQemuCpuWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemuCpu");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemuCpu";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCapabilitiesQemuCpu200Response>("/nodes/{node}/capabilities/qemu/cpu", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemuCpu", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpu List all custom and default CPU models.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCapabilitiesQemuCpu200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCapabilitiesQemuCpu200Response> GetNodesSingleCapabilitiesQemuCpuAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuCpu200Response> localVarResponse = await GetNodesSingleCapabilitiesQemuCpuWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpu List all custom and default CPU models.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCapabilitiesQemuCpu200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuCpu200Response>> GetNodesSingleCapabilitiesQemuCpuWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemuCpu");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemuCpu";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCapabilitiesQemuCpu200Response>("/nodes/{node}/capabilities/qemu/cpu", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemuCpu", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpuflags List of available VM-specific CPU flags.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCapabilitiesQemuCpuflags200Response</returns>
        public GetNodesSingleCapabilitiesQemuCpuflags200Response GetNodesSingleCapabilitiesQemuCpuflags(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuCpuflags200Response> localVarResponse = GetNodesSingleCapabilitiesQemuCpuflagsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpuflags List of available VM-specific CPU flags.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCapabilitiesQemuCpuflags200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuCpuflags200Response> GetNodesSingleCapabilitiesQemuCpuflagsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemuCpuflags");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemuCpuflags";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCapabilitiesQemuCpuflags200Response>("/nodes/{node}/capabilities/qemu/cpu-flags", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemuCpuflags", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpuflags List of available VM-specific CPU flags.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCapabilitiesQemuCpuflags200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCapabilitiesQemuCpuflags200Response> GetNodesSingleCapabilitiesQemuCpuflagsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuCpuflags200Response> localVarResponse = await GetNodesSingleCapabilitiesQemuCpuflagsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuCpuflags List of available VM-specific CPU flags.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCapabilitiesQemuCpuflags200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuCpuflags200Response>> GetNodesSingleCapabilitiesQemuCpuflagsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemuCpuflags");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemuCpuflags";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCapabilitiesQemuCpuflags200Response>("/nodes/{node}/capabilities/qemu/cpu-flags", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemuCpuflags", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMachines Get available QEMU/KVM machine types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCapabilitiesQemuMachines200Response</returns>
        public GetNodesSingleCapabilitiesQemuMachines200Response GetNodesSingleCapabilitiesQemuMachines(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuMachines200Response> localVarResponse = GetNodesSingleCapabilitiesQemuMachinesWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMachines Get available QEMU/KVM machine types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCapabilitiesQemuMachines200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuMachines200Response> GetNodesSingleCapabilitiesQemuMachinesWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemuMachines");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemuMachines";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCapabilitiesQemuMachines200Response>("/nodes/{node}/capabilities/qemu/machines", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemuMachines", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMachines Get available QEMU/KVM machine types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCapabilitiesQemuMachines200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCapabilitiesQemuMachines200Response> GetNodesSingleCapabilitiesQemuMachinesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuMachines200Response> localVarResponse = await GetNodesSingleCapabilitiesQemuMachinesWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMachines Get available QEMU/KVM machine types.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCapabilitiesQemuMachines200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuMachines200Response>> GetNodesSingleCapabilitiesQemuMachinesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemuMachines");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemuMachines";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCapabilitiesQemuMachines200Response>("/nodes/{node}/capabilities/qemu/machines", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemuMachines", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMigration Get node-specific QEMU migration capabilities of the node. Requires the &#39;Sys.Audit&#39; permission on &#39;/nodes/&lt;node&gt;&#39;.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCapabilitiesQemuMigration200Response</returns>
        public GetNodesSingleCapabilitiesQemuMigration200Response GetNodesSingleCapabilitiesQemuMigration(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuMigration200Response> localVarResponse = GetNodesSingleCapabilitiesQemuMigrationWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMigration Get node-specific QEMU migration capabilities of the node. Requires the &#39;Sys.Audit&#39; permission on &#39;/nodes/&lt;node&gt;&#39;.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCapabilitiesQemuMigration200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuMigration200Response> GetNodesSingleCapabilitiesQemuMigrationWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemuMigration");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemuMigration";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCapabilitiesQemuMigration200Response>("/nodes/{node}/capabilities/qemu/migration", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemuMigration", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMigration Get node-specific QEMU migration capabilities of the node. Requires the &#39;Sys.Audit&#39; permission on &#39;/nodes/&lt;node&gt;&#39;.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCapabilitiesQemuMigration200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCapabilitiesQemuMigration200Response> GetNodesSingleCapabilitiesQemuMigrationAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuMigration200Response> localVarResponse = await GetNodesSingleCapabilitiesQemuMigrationWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCapabilitiesQemuMigration Get node-specific QEMU migration capabilities of the node. Requires the &#39;Sys.Audit&#39; permission on &#39;/nodes/&lt;node&gt;&#39;.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCapabilitiesQemuMigration200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCapabilitiesQemuMigration200Response>> GetNodesSingleCapabilitiesQemuMigrationWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCapabilitiesQemuMigration");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCapabilitiesQemuMigration";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCapabilitiesQemuMigration200Response>("/nodes/{node}/capabilities/qemu/migration", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCapabilitiesQemuMigration", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCeph Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleCeph(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleCephWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCeph Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleCephWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCeph");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCeph";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/ceph", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCeph", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCeph Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCephAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleCephWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCeph Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleCephWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCeph");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCeph";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/ceph", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCeph", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCfg Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleCephCfg(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleCephCfgWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCfg Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleCephCfgWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCfg");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCfg";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/ceph/cfg", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCfg", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCfg Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCephCfgAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleCephCfgWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCfg Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleCephCfgWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCfg");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCfg";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/ceph/cfg", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCfg", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCfgDb Get the Ceph configuration database.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephCfgDb200Response</returns>
        public GetNodesSingleCephCfgDb200Response GetNodesSingleCephCfgDb(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCfgDb200Response> localVarResponse = GetNodesSingleCephCfgDbWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCfgDb Get the Ceph configuration database.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephCfgDb200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCfgDb200Response> GetNodesSingleCephCfgDbWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCfgDb");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCfgDb";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephCfgDb200Response>("/nodes/{node}/ceph/cfg/db", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCfgDb", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCfgDb Get the Ceph configuration database.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephCfgDb200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephCfgDb200Response> GetNodesSingleCephCfgDbAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCfgDb200Response> localVarResponse = await GetNodesSingleCephCfgDbWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCfgDb Get the Ceph configuration database.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephCfgDb200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCfgDb200Response>> GetNodesSingleCephCfgDbWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCfgDb");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCfgDb";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephCfgDb200Response>("/nodes/{node}/ceph/cfg/db", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCfgDb", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCfgRaw Get the Ceph configuration file.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetNodesSingleCephCfgRaw(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetNodesSingleCephCfgRawWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCfgRaw Get the Ceph configuration file.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetNodesSingleCephCfgRawWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCfgRaw");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCfgRaw";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/nodes/{node}/ceph/cfg/raw", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCfgRaw", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCfgRaw Get the Ceph configuration file.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleCephCfgRawAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetNodesSingleCephCfgRawWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCfgRaw Get the Ceph configuration file.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetNodesSingleCephCfgRawWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCfgRaw");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCfgRaw";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/cfg/raw", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCfgRaw", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCfgValue Get configured values from either the config file or config DB.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephCfgValue200Response</returns>
        public GetNodesSingleCephCfgValue200Response GetNodesSingleCephCfgValue(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCfgValue200Response> localVarResponse = GetNodesSingleCephCfgValueWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCfgValue Get configured values from either the config file or config DB.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephCfgValue200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCfgValue200Response> GetNodesSingleCephCfgValueWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCfgValue");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCfgValue";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephCfgValue200Response>("/nodes/{node}/ceph/cfg/value", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCfgValue", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCfgValue Get configured values from either the config file or config DB.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephCfgValue200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephCfgValue200Response> GetNodesSingleCephCfgValueAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCfgValue200Response> localVarResponse = await GetNodesSingleCephCfgValueWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCfgValue Get configured values from either the config file or config DB.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephCfgValue200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCfgValue200Response>> GetNodesSingleCephCfgValueWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCfgValue");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCfgValue";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephCfgValue200Response>("/nodes/{node}/ceph/cfg/value", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCfgValue", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCmdsafety Heuristical check if it is safe to perform an action.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephCmdsafety200Response</returns>
        public GetNodesSingleCephCmdsafety200Response GetNodesSingleCephCmdsafety(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCmdsafety200Response> localVarResponse = GetNodesSingleCephCmdsafetyWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCmdsafety Heuristical check if it is safe to perform an action.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephCmdsafety200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCmdsafety200Response> GetNodesSingleCephCmdsafetyWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCmdsafety");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCmdsafety";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephCmdsafety200Response>("/nodes/{node}/ceph/cmd-safety", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCmdsafety", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCmdsafety Heuristical check if it is safe to perform an action.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephCmdsafety200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephCmdsafety200Response> GetNodesSingleCephCmdsafetyAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCmdsafety200Response> localVarResponse = await GetNodesSingleCephCmdsafetyWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCmdsafety Heuristical check if it is safe to perform an action.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephCmdsafety200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephCmdsafety200Response>> GetNodesSingleCephCmdsafetyWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCmdsafety");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCmdsafety";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephCmdsafety200Response>("/nodes/{node}/ceph/cmd-safety", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCmdsafety", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCrush Get OSD crush map
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetNodesSingleCephCrush(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetNodesSingleCephCrushWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCrush Get OSD crush map
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetNodesSingleCephCrushWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCrush");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCrush";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/nodes/{node}/ceph/crush", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCrush", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephCrush Get OSD crush map
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleCephCrushAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetNodesSingleCephCrushWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephCrush Get OSD crush map
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetNodesSingleCephCrushWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephCrush");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephCrush";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/crush", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephCrush", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephFs Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephFs200Response</returns>
        public GetNodesSingleCephFs200Response GetNodesSingleCephFs(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephFs200Response> localVarResponse = GetNodesSingleCephFsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephFs Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephFs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephFs200Response> GetNodesSingleCephFsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephFs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephFs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephFs200Response>("/nodes/{node}/ceph/fs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephFs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephFs Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephFs200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephFs200Response> GetNodesSingleCephFsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephFs200Response> localVarResponse = await GetNodesSingleCephFsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephFs Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephFs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephFs200Response>> GetNodesSingleCephFsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephFs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephFs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephFs200Response>("/nodes/{node}/ceph/fs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephFs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephLog Read ceph log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleCephLog(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = GetNodesSingleCephLogWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephLog Read ceph log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleCephLogWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephLog");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/ceph/log", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephLog Read ceph log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleCephLogAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = await GetNodesSingleCephLogWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephLog Read ceph log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleCephLogWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephLog");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/ceph/log", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephMds MDS directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephMds200Response</returns>
        public GetNodesSingleCephMds200Response GetNodesSingleCephMds(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMds200Response> localVarResponse = GetNodesSingleCephMdsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephMds MDS directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephMds200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMds200Response> GetNodesSingleCephMdsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephMds");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephMds";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephMds200Response>("/nodes/{node}/ceph/mds", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephMds", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephMds MDS directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephMds200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephMds200Response> GetNodesSingleCephMdsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMds200Response> localVarResponse = await GetNodesSingleCephMdsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephMds MDS directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephMds200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMds200Response>> GetNodesSingleCephMdsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephMds");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephMds";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephMds200Response>("/nodes/{node}/ceph/mds", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephMds", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephMgr MGR directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephMgr200Response</returns>
        public GetNodesSingleCephMgr200Response GetNodesSingleCephMgr(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMgr200Response> localVarResponse = GetNodesSingleCephMgrWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephMgr MGR directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephMgr200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMgr200Response> GetNodesSingleCephMgrWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephMgr");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephMgr";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephMgr200Response>("/nodes/{node}/ceph/mgr", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephMgr", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephMgr MGR directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephMgr200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephMgr200Response> GetNodesSingleCephMgrAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMgr200Response> localVarResponse = await GetNodesSingleCephMgrWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephMgr MGR directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephMgr200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMgr200Response>> GetNodesSingleCephMgrWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephMgr");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephMgr";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephMgr200Response>("/nodes/{node}/ceph/mgr", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephMgr", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephMon Get Ceph monitor list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephMon200Response</returns>
        public GetNodesSingleCephMon200Response GetNodesSingleCephMon(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMon200Response> localVarResponse = GetNodesSingleCephMonWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephMon Get Ceph monitor list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephMon200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMon200Response> GetNodesSingleCephMonWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephMon");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephMon";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephMon200Response>("/nodes/{node}/ceph/mon", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephMon", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephMon Get Ceph monitor list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephMon200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephMon200Response> GetNodesSingleCephMonAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMon200Response> localVarResponse = await GetNodesSingleCephMonWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephMon Get Ceph monitor list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephMon200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephMon200Response>> GetNodesSingleCephMonWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephMon");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephMon";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephMon200Response>("/nodes/{node}/ceph/mon", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephMon", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephOsd Get Ceph osd list/tree.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetNodesSingleCephOsd(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetNodesSingleCephOsdWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephOsd Get Ceph osd list/tree.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleCephOsdWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephOsd");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephOsd";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/ceph/osd", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephOsd", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephOsd Get Ceph osd list/tree.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleCephOsdAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetNodesSingleCephOsdWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephOsd Get Ceph osd list/tree.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleCephOsdWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephOsd");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephOsd";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/ceph/osd", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephOsd", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingle OSD index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleCephOsdSingle(string node, int osdid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleCephOsdSingleWithHttpInfo(node, osdid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingle OSD index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleCephOsdSingleWithHttpInfo(string node, int osdid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephOsdSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephOsdSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/ceph/osd/{osdid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephOsdSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingle OSD index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCephOsdSingleAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleCephOsdSingleWithHttpInfoAsync(node, osdid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingle OSD index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleCephOsdSingleWithHttpInfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephOsdSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephOsdSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/ceph/osd/{osdid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephOsdSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingleLvinfo Get OSD volume details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephOsdSingleLvinfo200Response</returns>
        public GetNodesSingleCephOsdSingleLvinfo200Response GetNodesSingleCephOsdSingleLvinfo(string node, int osdid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephOsdSingleLvinfo200Response> localVarResponse = GetNodesSingleCephOsdSingleLvinfoWithHttpInfo(node, osdid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingleLvinfo Get OSD volume details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephOsdSingleLvinfo200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephOsdSingleLvinfo200Response> GetNodesSingleCephOsdSingleLvinfoWithHttpInfo(string node, int osdid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephOsdSingleLvinfo");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephOsdSingleLvinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephOsdSingleLvinfo200Response>("/nodes/{node}/ceph/osd/{osdid}/lv-info", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephOsdSingleLvinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingleLvinfo Get OSD volume details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephOsdSingleLvinfo200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephOsdSingleLvinfo200Response> GetNodesSingleCephOsdSingleLvinfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephOsdSingleLvinfo200Response> localVarResponse = await GetNodesSingleCephOsdSingleLvinfoWithHttpInfoAsync(node, osdid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingleLvinfo Get OSD volume details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephOsdSingleLvinfo200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephOsdSingleLvinfo200Response>> GetNodesSingleCephOsdSingleLvinfoWithHttpInfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephOsdSingleLvinfo");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephOsdSingleLvinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephOsdSingleLvinfo200Response>("/nodes/{node}/ceph/osd/{osdid}/lv-info", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephOsdSingleLvinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingleMetadata Get OSD details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephOsdSingleMetadata200Response</returns>
        public GetNodesSingleCephOsdSingleMetadata200Response GetNodesSingleCephOsdSingleMetadata(string node, int osdid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephOsdSingleMetadata200Response> localVarResponse = GetNodesSingleCephOsdSingleMetadataWithHttpInfo(node, osdid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingleMetadata Get OSD details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephOsdSingleMetadata200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephOsdSingleMetadata200Response> GetNodesSingleCephOsdSingleMetadataWithHttpInfo(string node, int osdid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephOsdSingleMetadata");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephOsdSingleMetadata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephOsdSingleMetadata200Response>("/nodes/{node}/ceph/osd/{osdid}/metadata", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephOsdSingleMetadata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingleMetadata Get OSD details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephOsdSingleMetadata200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephOsdSingleMetadata200Response> GetNodesSingleCephOsdSingleMetadataAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephOsdSingleMetadata200Response> localVarResponse = await GetNodesSingleCephOsdSingleMetadataWithHttpInfoAsync(node, osdid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephOsdSingleMetadata Get OSD details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="osdid">osdid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephOsdSingleMetadata200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephOsdSingleMetadata200Response>> GetNodesSingleCephOsdSingleMetadataWithHttpInfoAsync(string node, int osdid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephOsdSingleMetadata");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("osdid", ProxmoxSharp.Client.ClientUtils.ParameterToString(osdid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephOsdSingleMetadata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephOsdSingleMetadata200Response>("/nodes/{node}/ceph/osd/{osdid}/metadata", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephOsdSingleMetadata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephPool List all pools and their settings (which are settable by the POST/PUT endpoints).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephPool200Response</returns>
        public GetNodesSingleCephPool200Response GetNodesSingleCephPool(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephPool200Response> localVarResponse = GetNodesSingleCephPoolWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephPool List all pools and their settings (which are settable by the POST/PUT endpoints).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephPool200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephPool200Response> GetNodesSingleCephPoolWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephPool");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephPool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephPool200Response>("/nodes/{node}/ceph/pool", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephPool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephPool List all pools and their settings (which are settable by the POST/PUT endpoints).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephPool200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephPool200Response> GetNodesSingleCephPoolAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephPool200Response> localVarResponse = await GetNodesSingleCephPoolWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephPool List all pools and their settings (which are settable by the POST/PUT endpoints).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephPool200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephPool200Response>> GetNodesSingleCephPoolWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephPool");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephPool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephPool200Response>("/nodes/{node}/ceph/pool", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephPool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephPoolSingle Pool index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleCephPoolSingle(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleCephPoolSingleWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephPoolSingle Pool index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleCephPoolSingleWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleCephPoolSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephPoolSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephPoolSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/ceph/pool/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephPoolSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephPoolSingle Pool index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCephPoolSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleCephPoolSingleWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephPoolSingle Pool index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleCephPoolSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleCephPoolSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephPoolSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephPoolSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/ceph/pool/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephPoolSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephPoolSingleStatus Show the current pool status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephPoolSingleStatus200Response</returns>
        public GetNodesSingleCephPoolSingleStatus200Response GetNodesSingleCephPoolSingleStatus(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephPoolSingleStatus200Response> localVarResponse = GetNodesSingleCephPoolSingleStatusWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephPoolSingleStatus Show the current pool status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephPoolSingleStatus200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephPoolSingleStatus200Response> GetNodesSingleCephPoolSingleStatusWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleCephPoolSingleStatus");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephPoolSingleStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephPoolSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephPoolSingleStatus200Response>("/nodes/{node}/ceph/pool/{name}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephPoolSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephPoolSingleStatus Show the current pool status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephPoolSingleStatus200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephPoolSingleStatus200Response> GetNodesSingleCephPoolSingleStatusAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephPoolSingleStatus200Response> localVarResponse = await GetNodesSingleCephPoolSingleStatusWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephPoolSingleStatus Show the current pool status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephPoolSingleStatus200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephPoolSingleStatus200Response>> GetNodesSingleCephPoolSingleStatusWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleCephPoolSingleStatus");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephPoolSingleStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephPoolSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephPoolSingleStatus200Response>("/nodes/{node}/ceph/pool/{name}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephPoolSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephRules List ceph rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCephRules200Response</returns>
        public GetNodesSingleCephRules200Response GetNodesSingleCephRules(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephRules200Response> localVarResponse = GetNodesSingleCephRulesWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephRules List ceph rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCephRules200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephRules200Response> GetNodesSingleCephRulesWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephRules");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCephRules200Response>("/nodes/{node}/ceph/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephRules List ceph rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCephRules200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCephRules200Response> GetNodesSingleCephRulesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephRules200Response> localVarResponse = await GetNodesSingleCephRulesWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephRules List ceph rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCephRules200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCephRules200Response>> GetNodesSingleCephRulesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephRules");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCephRules200Response>("/nodes/{node}/ceph/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephStatus Get ceph status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetNodesSingleCephStatus(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetNodesSingleCephStatusWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephStatus Get ceph status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleCephStatusWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/ceph/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCephStatus Get ceph status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleCephStatusAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetNodesSingleCephStatusWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCephStatus Get ceph status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleCephStatusWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCephStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCephStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/ceph/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCephStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCertificates Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleCertificates(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleCertificatesWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCertificates Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleCertificatesWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCertificates");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCertificates";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/certificates", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCertificates", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCertificates Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCertificatesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleCertificatesWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCertificates Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleCertificatesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCertificates");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCertificates";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/certificates", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCertificates", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCertificatesAcme ACME index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleCertificatesAcme(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleCertificatesAcmeWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCertificatesAcme ACME index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleCertificatesAcmeWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCertificatesAcme");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCertificatesAcme";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/certificates/acme", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCertificatesAcme", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCertificatesAcme ACME index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleCertificatesAcmeAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleCertificatesAcmeWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCertificatesAcme ACME index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleCertificatesAcmeWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCertificatesAcme");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCertificatesAcme";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/certificates/acme", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCertificatesAcme", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCertificatesInfo Get information about node&#39;s certificates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleCertificatesInfo200Response</returns>
        public GetNodesSingleCertificatesInfo200Response GetNodesSingleCertificatesInfo(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCertificatesInfo200Response> localVarResponse = GetNodesSingleCertificatesInfoWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCertificatesInfo Get information about node&#39;s certificates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleCertificatesInfo200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleCertificatesInfo200Response> GetNodesSingleCertificatesInfoWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCertificatesInfo");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCertificatesInfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleCertificatesInfo200Response>("/nodes/{node}/certificates/info", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCertificatesInfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleCertificatesInfo Get information about node&#39;s certificates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleCertificatesInfo200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleCertificatesInfo200Response> GetNodesSingleCertificatesInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleCertificatesInfo200Response> localVarResponse = await GetNodesSingleCertificatesInfoWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleCertificatesInfo Get information about node&#39;s certificates.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleCertificatesInfo200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleCertificatesInfo200Response>> GetNodesSingleCertificatesInfoWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleCertificatesInfo");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleCertificatesInfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleCertificatesInfo200Response>("/nodes/{node}/certificates/info", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleCertificatesInfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleConfig Get node configuration options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleConfig200Response</returns>
        public GetNodesSingleConfig200Response GetNodesSingleConfig(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleConfig200Response> localVarResponse = GetNodesSingleConfigWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleConfig Get node configuration options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleConfig200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleConfig200Response> GetNodesSingleConfigWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleConfig200Response>("/nodes/{node}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleConfig Get node configuration options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleConfig200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleConfig200Response> GetNodesSingleConfigAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleConfig200Response> localVarResponse = await GetNodesSingleConfigWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleConfig Get node configuration options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleConfig200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleConfig200Response>> GetNodesSingleConfigWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleConfig200Response>("/nodes/{node}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisks Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleDisks(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleDisksWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisks Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleDisksWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisks");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisks";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/disks", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisks", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisks Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleDisksAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleDisksWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisks Node index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleDisksWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisks");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisks";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/disks", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisks", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksDirectory PVE Managed Directory storages.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksDirectory200Response</returns>
        public GetNodesSingleDisksDirectory200Response GetNodesSingleDisksDirectory(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksDirectory200Response> localVarResponse = GetNodesSingleDisksDirectoryWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksDirectory PVE Managed Directory storages.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksDirectory200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksDirectory200Response> GetNodesSingleDisksDirectoryWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksDirectory");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksDirectory";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleDisksDirectory200Response>("/nodes/{node}/disks/directory", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksDirectory", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksDirectory PVE Managed Directory storages.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksDirectory200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleDisksDirectory200Response> GetNodesSingleDisksDirectoryAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksDirectory200Response> localVarResponse = await GetNodesSingleDisksDirectoryWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksDirectory PVE Managed Directory storages.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksDirectory200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksDirectory200Response>> GetNodesSingleDisksDirectoryWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksDirectory");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksDirectory";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleDisksDirectory200Response>("/nodes/{node}/disks/directory", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksDirectory", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksList List local disks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksList200Response</returns>
        public GetNodesSingleDisksList200Response GetNodesSingleDisksList(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksList200Response> localVarResponse = GetNodesSingleDisksListWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksList List local disks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksList200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksList200Response> GetNodesSingleDisksListWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksList");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksList";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleDisksList200Response>("/nodes/{node}/disks/list", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksList", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksList List local disks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksList200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleDisksList200Response> GetNodesSingleDisksListAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksList200Response> localVarResponse = await GetNodesSingleDisksListWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksList List local disks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksList200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksList200Response>> GetNodesSingleDisksListWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksList");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksList";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleDisksList200Response>("/nodes/{node}/disks/list", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksList", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksLvm List LVM Volume Groups
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksLvm200Response</returns>
        public GetNodesSingleDisksLvm200Response GetNodesSingleDisksLvm(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksLvm200Response> localVarResponse = GetNodesSingleDisksLvmWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksLvm List LVM Volume Groups
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksLvm200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksLvm200Response> GetNodesSingleDisksLvmWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksLvm");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksLvm";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleDisksLvm200Response>("/nodes/{node}/disks/lvm", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksLvm", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksLvm List LVM Volume Groups
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksLvm200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleDisksLvm200Response> GetNodesSingleDisksLvmAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksLvm200Response> localVarResponse = await GetNodesSingleDisksLvmWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksLvm List LVM Volume Groups
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksLvm200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksLvm200Response>> GetNodesSingleDisksLvmWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksLvm");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksLvm";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleDisksLvm200Response>("/nodes/{node}/disks/lvm", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksLvm", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksLvmthin List LVM thinpools
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksLvmthin200Response</returns>
        public GetNodesSingleDisksLvmthin200Response GetNodesSingleDisksLvmthin(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksLvmthin200Response> localVarResponse = GetNodesSingleDisksLvmthinWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksLvmthin List LVM thinpools
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksLvmthin200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksLvmthin200Response> GetNodesSingleDisksLvmthinWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksLvmthin");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksLvmthin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleDisksLvmthin200Response>("/nodes/{node}/disks/lvmthin", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksLvmthin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksLvmthin List LVM thinpools
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksLvmthin200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleDisksLvmthin200Response> GetNodesSingleDisksLvmthinAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksLvmthin200Response> localVarResponse = await GetNodesSingleDisksLvmthinWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksLvmthin List LVM thinpools
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksLvmthin200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksLvmthin200Response>> GetNodesSingleDisksLvmthinWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksLvmthin");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksLvmthin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleDisksLvmthin200Response>("/nodes/{node}/disks/lvmthin", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksLvmthin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksSmart Get SMART Health of a disk.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksSmart200Response</returns>
        public GetNodesSingleDisksSmart200Response GetNodesSingleDisksSmart(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksSmart200Response> localVarResponse = GetNodesSingleDisksSmartWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksSmart Get SMART Health of a disk.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksSmart200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksSmart200Response> GetNodesSingleDisksSmartWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksSmart");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksSmart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleDisksSmart200Response>("/nodes/{node}/disks/smart", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksSmart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksSmart Get SMART Health of a disk.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksSmart200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleDisksSmart200Response> GetNodesSingleDisksSmartAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksSmart200Response> localVarResponse = await GetNodesSingleDisksSmartWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksSmart Get SMART Health of a disk.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksSmart200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksSmart200Response>> GetNodesSingleDisksSmartWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksSmart");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksSmart";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleDisksSmart200Response>("/nodes/{node}/disks/smart", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksSmart", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksZfs List Zpools.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksZfs200Response</returns>
        public GetNodesSingleDisksZfs200Response GetNodesSingleDisksZfs(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksZfs200Response> localVarResponse = GetNodesSingleDisksZfsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksZfs List Zpools.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksZfs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksZfs200Response> GetNodesSingleDisksZfsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksZfs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksZfs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleDisksZfs200Response>("/nodes/{node}/disks/zfs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksZfs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksZfs List Zpools.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksZfs200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleDisksZfs200Response> GetNodesSingleDisksZfsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksZfs200Response> localVarResponse = await GetNodesSingleDisksZfsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksZfs List Zpools.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksZfs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksZfs200Response>> GetNodesSingleDisksZfsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksZfs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksZfs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleDisksZfs200Response>("/nodes/{node}/disks/zfs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksZfs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksZfsSingle Get details about a zpool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDisksZfsSingle200Response</returns>
        public GetNodesSingleDisksZfsSingle200Response GetNodesSingleDisksZfsSingle(string name, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksZfsSingle200Response> localVarResponse = GetNodesSingleDisksZfsSingleWithHttpInfo(name, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksZfsSingle Get details about a zpool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDisksZfsSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksZfsSingle200Response> GetNodesSingleDisksZfsSingleWithHttpInfo(string name, string node, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleDisksZfsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksZfsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksZfsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleDisksZfsSingle200Response>("/nodes/{node}/disks/zfs/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksZfsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDisksZfsSingle Get details about a zpool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDisksZfsSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleDisksZfsSingle200Response> GetNodesSingleDisksZfsSingleAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksZfsSingle200Response> localVarResponse = await GetNodesSingleDisksZfsSingleWithHttpInfoAsync(name, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDisksZfsSingle Get details about a zpool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDisksZfsSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleDisksZfsSingle200Response>> GetNodesSingleDisksZfsSingleWithHttpInfoAsync(string name, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleDisksZfsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDisksZfsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDisksZfsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleDisksZfsSingle200Response>("/nodes/{node}/disks/zfs/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDisksZfsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDns Read DNS settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleDns200Response</returns>
        public GetNodesSingleDns200Response GetNodesSingleDns(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDns200Response> localVarResponse = GetNodesSingleDnsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDns Read DNS settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleDns200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleDns200Response> GetNodesSingleDnsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDns");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDns";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleDns200Response>("/nodes/{node}/dns", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDns", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleDns Read DNS settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleDns200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleDns200Response> GetNodesSingleDnsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleDns200Response> localVarResponse = await GetNodesSingleDnsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleDns Read DNS settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleDns200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleDns200Response>> GetNodesSingleDnsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleDns");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleDns";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleDns200Response>("/nodes/{node}/dns", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleDns", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleFirewallLog(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = GetNodesSingleFirewallLogWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleFirewallLogWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleFirewallLog");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleFirewallLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/firewall/log", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleFirewallLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleFirewallLogAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = await GetNodesSingleFirewallLogWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleFirewallLogWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleFirewallLog");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleFirewallLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/firewall/log", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleFirewallLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardware Index of hardware types
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHardware200Response</returns>
        public GetNodesSingleHardware200Response GetNodesSingleHardware(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardware200Response> localVarResponse = GetNodesSingleHardwareWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardware Index of hardware types
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHardware200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardware200Response> GetNodesSingleHardwareWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardware");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardware";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleHardware200Response>("/nodes/{node}/hardware", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardware", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardware Index of hardware types
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHardware200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleHardware200Response> GetNodesSingleHardwareAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardware200Response> localVarResponse = await GetNodesSingleHardwareWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardware Index of hardware types
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHardware200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardware200Response>> GetNodesSingleHardwareWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardware");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardware";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleHardware200Response>("/nodes/{node}/hardware", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardware", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardwarePci List local PCI devices.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHardwarePci200Response</returns>
        public GetNodesSingleHardwarePci200Response GetNodesSingleHardwarePci(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwarePci200Response> localVarResponse = GetNodesSingleHardwarePciWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardwarePci List local PCI devices.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHardwarePci200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwarePci200Response> GetNodesSingleHardwarePciWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePci");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardwarePci";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleHardwarePci200Response>("/nodes/{node}/hardware/pci", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardwarePci", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardwarePci List local PCI devices.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHardwarePci200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleHardwarePci200Response> GetNodesSingleHardwarePciAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwarePci200Response> localVarResponse = await GetNodesSingleHardwarePciWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardwarePci List local PCI devices.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHardwarePci200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwarePci200Response>> GetNodesSingleHardwarePciWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePci");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardwarePci";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleHardwarePci200Response>("/nodes/{node}/hardware/pci", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardwarePci", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardwarePciSingle Index of available pci methods
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScan200Response</returns>
        public GetNodesSingleScan200Response GetNodesSingleHardwarePciSingle(string node, string pciIdOrMapping, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScan200Response> localVarResponse = GetNodesSingleHardwarePciSingleWithHttpInfo(node, pciIdOrMapping);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardwarePciSingle Index of available pci methods
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScan200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScan200Response> GetNodesSingleHardwarePciSingleWithHttpInfo(string node, string pciIdOrMapping, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePciSingle");
            }

            // verify the required parameter 'pciIdOrMapping' is set
            if (pciIdOrMapping == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'pciIdOrMapping' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePciSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pci-id-or-mapping", ProxmoxSharp.Client.ClientUtils.ParameterToString(pciIdOrMapping)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardwarePciSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScan200Response>("/nodes/{node}/hardware/pci/{pci-id-or-mapping}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardwarePciSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardwarePciSingle Index of available pci methods
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScan200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScan200Response> GetNodesSingleHardwarePciSingleAsync(string node, string pciIdOrMapping, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScan200Response> localVarResponse = await GetNodesSingleHardwarePciSingleWithHttpInfoAsync(node, pciIdOrMapping, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardwarePciSingle Index of available pci methods
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScan200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScan200Response>> GetNodesSingleHardwarePciSingleWithHttpInfoAsync(string node, string pciIdOrMapping, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePciSingle");
            }

            // verify the required parameter 'pciIdOrMapping' is set
            if (pciIdOrMapping == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'pciIdOrMapping' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePciSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pci-id-or-mapping", ProxmoxSharp.Client.ClientUtils.ParameterToString(pciIdOrMapping)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardwarePciSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScan200Response>("/nodes/{node}/hardware/pci/{pci-id-or-mapping}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardwarePciSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardwarePciSingleMdev List mediated device types for given PCI device.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHardwarePciSingleMdev200Response</returns>
        public GetNodesSingleHardwarePciSingleMdev200Response GetNodesSingleHardwarePciSingleMdev(string node, string pciIdOrMapping, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwarePciSingleMdev200Response> localVarResponse = GetNodesSingleHardwarePciSingleMdevWithHttpInfo(node, pciIdOrMapping);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardwarePciSingleMdev List mediated device types for given PCI device.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHardwarePciSingleMdev200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwarePciSingleMdev200Response> GetNodesSingleHardwarePciSingleMdevWithHttpInfo(string node, string pciIdOrMapping, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePciSingleMdev");
            }

            // verify the required parameter 'pciIdOrMapping' is set
            if (pciIdOrMapping == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'pciIdOrMapping' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePciSingleMdev");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pci-id-or-mapping", ProxmoxSharp.Client.ClientUtils.ParameterToString(pciIdOrMapping)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardwarePciSingleMdev";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleHardwarePciSingleMdev200Response>("/nodes/{node}/hardware/pci/{pci-id-or-mapping}/mdev", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardwarePciSingleMdev", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardwarePciSingleMdev List mediated device types for given PCI device.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHardwarePciSingleMdev200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleHardwarePciSingleMdev200Response> GetNodesSingleHardwarePciSingleMdevAsync(string node, string pciIdOrMapping, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwarePciSingleMdev200Response> localVarResponse = await GetNodesSingleHardwarePciSingleMdevWithHttpInfoAsync(node, pciIdOrMapping, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardwarePciSingleMdev List mediated device types for given PCI device.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pciIdOrMapping">pci-id-or-mapping</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHardwarePciSingleMdev200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwarePciSingleMdev200Response>> GetNodesSingleHardwarePciSingleMdevWithHttpInfoAsync(string node, string pciIdOrMapping, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePciSingleMdev");
            }

            // verify the required parameter 'pciIdOrMapping' is set
            if (pciIdOrMapping == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'pciIdOrMapping' when calling ProxmoxGeneratedApi->GetNodesSingleHardwarePciSingleMdev");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pci-id-or-mapping", ProxmoxSharp.Client.ClientUtils.ParameterToString(pciIdOrMapping)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardwarePciSingleMdev";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleHardwarePciSingleMdev200Response>("/nodes/{node}/hardware/pci/{pci-id-or-mapping}/mdev", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardwarePciSingleMdev", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardwareUsb List local USB devices.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHardwareUsb200Response</returns>
        public GetNodesSingleHardwareUsb200Response GetNodesSingleHardwareUsb(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwareUsb200Response> localVarResponse = GetNodesSingleHardwareUsbWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardwareUsb List local USB devices.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHardwareUsb200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwareUsb200Response> GetNodesSingleHardwareUsbWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardwareUsb");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardwareUsb";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleHardwareUsb200Response>("/nodes/{node}/hardware/usb", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardwareUsb", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHardwareUsb List local USB devices.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHardwareUsb200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleHardwareUsb200Response> GetNodesSingleHardwareUsbAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwareUsb200Response> localVarResponse = await GetNodesSingleHardwareUsbWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHardwareUsb List local USB devices.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHardwareUsb200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleHardwareUsb200Response>> GetNodesSingleHardwareUsbWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHardwareUsb");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHardwareUsb";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleHardwareUsb200Response>("/nodes/{node}/hardware/usb", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHardwareUsb", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHosts Get the content of /etc/hosts.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleHosts200Response</returns>
        public GetNodesSingleHosts200Response GetNodesSingleHosts(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHosts200Response> localVarResponse = GetNodesSingleHostsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHosts Get the content of /etc/hosts.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleHosts200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleHosts200Response> GetNodesSingleHostsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHosts");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHosts";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleHosts200Response>("/nodes/{node}/hosts", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHosts", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleHosts Get the content of /etc/hosts.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleHosts200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleHosts200Response> GetNodesSingleHostsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleHosts200Response> localVarResponse = await GetNodesSingleHostsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleHosts Get the content of /etc/hosts.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleHosts200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleHosts200Response>> GetNodesSingleHostsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleHosts");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleHosts";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleHosts200Response>("/nodes/{node}/hosts", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleHosts", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleJournal Read Journal
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleJournal200Response</returns>
        public GetNodesSingleJournal200Response GetNodesSingleJournal(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleJournal200Response> localVarResponse = GetNodesSingleJournalWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleJournal Read Journal
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleJournal200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleJournal200Response> GetNodesSingleJournalWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleJournal");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleJournal";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleJournal200Response>("/nodes/{node}/journal", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleJournal", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleJournal Read Journal
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleJournal200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleJournal200Response> GetNodesSingleJournalAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleJournal200Response> localVarResponse = await GetNodesSingleJournalWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleJournal Read Journal
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleJournal200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleJournal200Response>> GetNodesSingleJournalWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleJournal");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleJournal";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleJournal200Response>("/nodes/{node}/journal", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleJournal", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxc LXC container index (per node).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxc200Response</returns>
        public GetNodesSingleLxc200Response GetNodesSingleLxc(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxc200Response> localVarResponse = GetNodesSingleLxcWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxc LXC container index (per node).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxc200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxc200Response> GetNodesSingleLxcWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxc");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxc";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleLxc200Response>("/nodes/{node}/lxc", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxc", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxc LXC container index (per node).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxc200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleLxc200Response> GetNodesSingleLxcAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxc200Response> localVarResponse = await GetNodesSingleLxcWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxc LXC container index (per node).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxc200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxc200Response>> GetNodesSingleLxcWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxc");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxc";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleLxc200Response>("/nodes/{node}/lxc", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxc", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingle Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetNodesSingleLxcSingle(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetNodesSingleLxcSingleWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingle Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleLxcSingleWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/lxc/{vmid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingle Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleLxcSingleAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetNodesSingleLxcSingleWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingle Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleLxcSingleWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/lxc/{vmid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleConfig Get container configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleConfig200Response</returns>
        public GetNodesSingleLxcSingleConfig200Response GetNodesSingleLxcSingleConfig(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleConfig200Response> localVarResponse = GetNodesSingleLxcSingleConfigWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleConfig Get container configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleConfig200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleConfig200Response> GetNodesSingleLxcSingleConfigWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleLxcSingleConfig200Response>("/nodes/{node}/lxc/{vmid}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleConfig Get container configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleConfig200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleLxcSingleConfig200Response> GetNodesSingleLxcSingleConfigAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleConfig200Response> localVarResponse = await GetNodesSingleLxcSingleConfigWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleConfig Get container configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleConfig200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleConfig200Response>> GetNodesSingleLxcSingleConfigWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleLxcSingleConfig200Response>("/nodes/{node}/lxc/{vmid}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFeature Check if feature for virtual machine is available.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleFeature200Response</returns>
        public GetNodesSingleLxcSingleFeature200Response GetNodesSingleLxcSingleFeature(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleFeature200Response> localVarResponse = GetNodesSingleLxcSingleFeatureWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFeature Check if feature for virtual machine is available.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleFeature200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleFeature200Response> GetNodesSingleLxcSingleFeatureWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFeature");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFeature";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleLxcSingleFeature200Response>("/nodes/{node}/lxc/{vmid}/feature", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFeature", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFeature Check if feature for virtual machine is available.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleFeature200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleLxcSingleFeature200Response> GetNodesSingleLxcSingleFeatureAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleFeature200Response> localVarResponse = await GetNodesSingleLxcSingleFeatureWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFeature Check if feature for virtual machine is available.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleFeature200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleFeature200Response>> GetNodesSingleLxcSingleFeatureWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFeature");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFeature";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleLxcSingleFeature200Response>("/nodes/{node}/lxc/{vmid}/feature", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFeature", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleLxcSingleFirewall(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleLxcSingleFirewallWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleLxcSingleFirewallWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewall");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/lxc/{vmid}/firewall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleLxcSingleFirewallAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleLxcSingleFirewallWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewall");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/lxc/{vmid}/firewall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallAliases200Response</returns>
        public GetClusterFirewallAliases200Response GetNodesSingleLxcSingleFirewallAliases(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> localVarResponse = GetNodesSingleLxcSingleFirewallAliasesWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallAliases200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> GetNodesSingleLxcSingleFirewallAliasesWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallAliases");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallAliases200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallAliases200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallAliases200Response> GetNodesSingleLxcSingleFirewallAliasesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallAliasesWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallAliases200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response>> GetNodesSingleLxcSingleFirewallAliasesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallAliases");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallAliases200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetNodesSingleLxcSingleFirewallAliasesSingle(string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleFirewallAliasesSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpset List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSets200Response</returns>
        public GetClusterFirewallIPSets200Response GetNodesSingleLxcSingleFirewallIpset(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> localVarResponse = GetNodesSingleLxcSingleFirewallIpsetWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpset List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSets200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> GetNodesSingleLxcSingleFirewallIpsetWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpset");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallIpset";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallIPSets200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallIpset", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpset List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSets200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallIPSets200Response> GetNodesSingleLxcSingleFirewallIpsetAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallIpsetWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpset List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSets200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response>> GetNodesSingleLxcSingleFirewallIpsetWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpset");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallIpset";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallIPSets200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallIpset", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingle List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSet200Response</returns>
        public GetClusterFirewallIPSet200Response GetNodesSingleLxcSingleFirewallIpsetSingle(string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> localVarResponse = GetNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingle List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSet200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> GetNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallIpsetSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallIPSet200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallIpsetSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingle List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSet200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallIPSet200Response> GetNodesSingleLxcSingleFirewallIpsetSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingle List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSet200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response>> GetNodesSingleLxcSingleFirewallIpsetSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallIpsetSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallIPSet200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallIpsetSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingleSingle Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetNodesSingleLxcSingleFirewallIpsetSingleSingle(string cidr, string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(cidr, name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingleSingle Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(string cidr, string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallIpsetSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallIpsetSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingleSingle Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleFirewallIpsetSingleSingleAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(cidr, name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallIpsetSingleSingle Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallIpsetSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallIpsetSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleLxcSingleFirewallLog(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = GetNodesSingleLxcSingleFirewallLogWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleLxcSingleFirewallLogWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallLog");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/lxc/{vmid}/firewall/log", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleLxcSingleFirewallLogAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallLogWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleLxcSingleFirewallLogWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallLog");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/lxc/{vmid}/firewall/log", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallOptions Get VM firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMFirewallOptions200Response</returns>
        public GetVMFirewallOptions200Response GetNodesSingleLxcSingleFirewallOptions(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMFirewallOptions200Response> localVarResponse = GetNodesSingleLxcSingleFirewallOptionsWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallOptions Get VM firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMFirewallOptions200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMFirewallOptions200Response> GetNodesSingleLxcSingleFirewallOptionsWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallOptions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMFirewallOptions200Response>("/nodes/{node}/lxc/{vmid}/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallOptions Get VM firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMFirewallOptions200Response</returns>
        public async System.Threading.Tasks.Task<GetVMFirewallOptions200Response> GetNodesSingleLxcSingleFirewallOptionsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMFirewallOptions200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallOptionsWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallOptions Get VM firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMFirewallOptions200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMFirewallOptions200Response>> GetNodesSingleLxcSingleFirewallOptionsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallOptions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMFirewallOptions200Response>("/nodes/{node}/lxc/{vmid}/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallRefs200Response</returns>
        public GetClusterFirewallRefs200Response GetNodesSingleLxcSingleFirewallRefs(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> localVarResponse = GetNodesSingleLxcSingleFirewallRefsWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallRefs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> GetNodesSingleLxcSingleFirewallRefsWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallRefs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallRefs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallRefs200Response>("/nodes/{node}/lxc/{vmid}/firewall/refs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallRefs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallRefs200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallRefs200Response> GetNodesSingleLxcSingleFirewallRefsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallRefsWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallRefs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response>> GetNodesSingleLxcSingleFirewallRefsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallRefs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallRefs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallRefs200Response>("/nodes/{node}/lxc/{vmid}/firewall/refs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallRefs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        public GetClusterFirewallGroupRules200Response GetNodesSingleLxcSingleFirewallRules(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = GetNodesSingleLxcSingleFirewallRulesWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> GetNodesSingleLxcSingleFirewallRulesWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallRules");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRules200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetNodesSingleLxcSingleFirewallRulesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallRulesWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response>> GetNodesSingleLxcSingleFirewallRulesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallRules");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRules200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRulesSingle Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        public GetClusterFirewallGroupRule200Response GetNodesSingleLxcSingleFirewallRulesSingle(string node, int pos, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = GetNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(node, pos, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRulesSingle Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> GetNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(string node, int pos, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRule200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRulesSingle Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetNodesSingleLxcSingleFirewallRulesSingleAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = await GetNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(node, pos, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleFirewallRulesSingle Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response>> GetNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleFirewallRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRule200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleInterfaces Get IP addresses of the specified container interface.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleInterfaces200Response</returns>
        public GetNodesSingleLxcSingleInterfaces200Response GetNodesSingleLxcSingleInterfaces(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleInterfaces200Response> localVarResponse = GetNodesSingleLxcSingleInterfacesWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleInterfaces Get IP addresses of the specified container interface.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleInterfaces200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleInterfaces200Response> GetNodesSingleLxcSingleInterfacesWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleInterfaces");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleInterfaces";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleLxcSingleInterfaces200Response>("/nodes/{node}/lxc/{vmid}/interfaces", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleInterfaces", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleInterfaces Get IP addresses of the specified container interface.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleInterfaces200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleLxcSingleInterfaces200Response> GetNodesSingleLxcSingleInterfacesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleInterfaces200Response> localVarResponse = await GetNodesSingleLxcSingleInterfacesWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleInterfaces Get IP addresses of the specified container interface.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleInterfaces200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleInterfaces200Response>> GetNodesSingleLxcSingleInterfacesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleInterfaces");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleInterfaces";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleLxcSingleInterfaces200Response>("/nodes/{node}/lxc/{vmid}/interfaces", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleInterfaces", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleMigrate Get preconditions for migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleMigrate200Response</returns>
        public GetNodesSingleLxcSingleMigrate200Response GetNodesSingleLxcSingleMigrate(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleMigrate200Response> localVarResponse = GetNodesSingleLxcSingleMigrateWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleMigrate Get preconditions for migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleMigrate200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleMigrate200Response> GetNodesSingleLxcSingleMigrateWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleMigrate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleLxcSingleMigrate200Response>("/nodes/{node}/lxc/{vmid}/migrate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleMigrate Get preconditions for migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleMigrate200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleLxcSingleMigrate200Response> GetNodesSingleLxcSingleMigrateAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleMigrate200Response> localVarResponse = await GetNodesSingleLxcSingleMigrateWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleMigrate Get preconditions for migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleMigrate200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleMigrate200Response>> GetNodesSingleLxcSingleMigrateWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleMigrate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleMigrate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleLxcSingleMigrate200Response>("/nodes/{node}/lxc/{vmid}/migrate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleMigrate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleMtunnelwebsocket Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        public GetNodesSingleQemuSingleMtunnelwebsocket200Response GetNodesSingleLxcSingleMtunnelwebsocket(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response> localVarResponse = GetNodesSingleLxcSingleMtunnelwebsocketWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleMtunnelwebsocket Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response> GetNodesSingleLxcSingleMtunnelwebsocketWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleMtunnelwebsocket");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleMtunnelwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleMtunnelwebsocket200Response>("/nodes/{node}/lxc/{vmid}/mtunnelwebsocket", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleMtunnelwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleMtunnelwebsocket Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleMtunnelwebsocket200Response> GetNodesSingleLxcSingleMtunnelwebsocketAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response> localVarResponse = await GetNodesSingleLxcSingleMtunnelwebsocketWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleMtunnelwebsocket Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleMtunnelwebsocket200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response>> GetNodesSingleLxcSingleMtunnelwebsocketWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleMtunnelwebsocket");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleMtunnelwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleMtunnelwebsocket200Response>("/nodes/{node}/lxc/{vmid}/mtunnelwebsocket", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleMtunnelwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSinglePending Get container configuration, including pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSinglePending200Response</returns>
        public GetNodesSingleLxcSinglePending200Response GetNodesSingleLxcSinglePending(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSinglePending200Response> localVarResponse = GetNodesSingleLxcSinglePendingWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSinglePending Get container configuration, including pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSinglePending200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSinglePending200Response> GetNodesSingleLxcSinglePendingWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSinglePending");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSinglePending";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleLxcSinglePending200Response>("/nodes/{node}/lxc/{vmid}/pending", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSinglePending", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSinglePending Get container configuration, including pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSinglePending200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleLxcSinglePending200Response> GetNodesSingleLxcSinglePendingAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSinglePending200Response> localVarResponse = await GetNodesSingleLxcSinglePendingWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSinglePending Get container configuration, including pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSinglePending200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSinglePending200Response>> GetNodesSingleLxcSinglePendingWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSinglePending");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSinglePending";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleLxcSinglePending200Response>("/nodes/{node}/lxc/{vmid}/pending", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSinglePending", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleRrd Read VM RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMRRD200Response</returns>
        public GetVMRRD200Response GetNodesSingleLxcSingleRrd(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> localVarResponse = GetNodesSingleLxcSingleRrdWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleRrd Read VM RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMRRD200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> GetNodesSingleLxcSingleRrdWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleRrd");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleRrd";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMRRD200Response>("/nodes/{node}/lxc/{vmid}/rrd", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleRrd", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleRrd Read VM RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMRRD200Response</returns>
        public async System.Threading.Tasks.Task<GetVMRRD200Response> GetNodesSingleLxcSingleRrdAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> localVarResponse = await GetNodesSingleLxcSingleRrdWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleRrd Read VM RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMRRD200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response>> GetNodesSingleLxcSingleRrdWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleRrd");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleRrd";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMRRD200Response>("/nodes/{node}/lxc/{vmid}/rrd", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleRrd", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleRrddata Read VM RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleLxcSingleRrddata(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleLxcSingleRrddataWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleRrddata Read VM RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleLxcSingleRrddataWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleRrddata");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleRrddata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/lxc/{vmid}/rrddata", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleRrddata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleRrddata Read VM RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleLxcSingleRrddataAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleLxcSingleRrddataWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleRrddata Read VM RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleLxcSingleRrddataWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleRrddata");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleRrddata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/lxc/{vmid}/rrddata", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleRrddata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshot List all snapshots.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleSnapshot200Response</returns>
        public GetNodesSingleLxcSingleSnapshot200Response GetNodesSingleLxcSingleSnapshot(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleSnapshot200Response> localVarResponse = GetNodesSingleLxcSingleSnapshotWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshot List all snapshots.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleSnapshot200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleSnapshot200Response> GetNodesSingleLxcSingleSnapshotWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshot");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleLxcSingleSnapshot200Response>("/nodes/{node}/lxc/{vmid}/snapshot", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshot List all snapshots.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleSnapshot200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleLxcSingleSnapshot200Response> GetNodesSingleLxcSingleSnapshotAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleSnapshot200Response> localVarResponse = await GetNodesSingleLxcSingleSnapshotWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshot List all snapshots.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleSnapshot200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleSnapshot200Response>> GetNodesSingleLxcSingleSnapshotWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshot");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleLxcSingleSnapshot200Response>("/nodes/{node}/lxc/{vmid}/snapshot", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingle getNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleLxcSingleSnapshotSingle(string node, string snapname, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleLxcSingleSnapshotSingleWithHttpInfo(node, snapname, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingle getNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleLxcSingleSnapshotSingleWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshotSingle");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshotSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleSnapshotSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleSnapshotSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingle getNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleLxcSingleSnapshotSingleAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleLxcSingleSnapshotSingleWithHttpInfoAsync(node, snapname, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingle getNodesSingleLxcSingleSnapshotSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleLxcSingleSnapshotSingleWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshotSingle");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshotSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleSnapshotSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleSnapshotSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingleConfig Get snapshot configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetNodesSingleLxcSingleSnapshotSingleConfig(string node, string snapname, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfo(node, snapname, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingleConfig Get snapshot configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshotSingleConfig");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshotSingleConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleSnapshotSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleSnapshotSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingleConfig Get snapshot configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleLxcSingleSnapshotSingleConfigAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfoAsync(node, snapname, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleSnapshotSingleConfig Get snapshot configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshotSingleConfig");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleSnapshotSingleConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleSnapshotSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleSnapshotSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleStatus Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetNodesSingleLxcSingleStatus(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetNodesSingleLxcSingleStatusWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleStatus Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleLxcSingleStatusWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/lxc/{vmid}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleStatus Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleLxcSingleStatusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetNodesSingleLxcSingleStatusWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleStatus Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleLxcSingleStatusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/lxc/{vmid}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleStatusCurrent Get virtual machine status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleLxcSingleStatusCurrent200Response</returns>
        public GetNodesSingleLxcSingleStatusCurrent200Response GetNodesSingleLxcSingleStatusCurrent(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleStatusCurrent200Response> localVarResponse = GetNodesSingleLxcSingleStatusCurrentWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleStatusCurrent Get virtual machine status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleLxcSingleStatusCurrent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleStatusCurrent200Response> GetNodesSingleLxcSingleStatusCurrentWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleStatusCurrent");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleStatusCurrent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleLxcSingleStatusCurrent200Response>("/nodes/{node}/lxc/{vmid}/status/current", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleStatusCurrent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleStatusCurrent Get virtual machine status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleLxcSingleStatusCurrent200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleLxcSingleStatusCurrent200Response> GetNodesSingleLxcSingleStatusCurrentAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleStatusCurrent200Response> localVarResponse = await GetNodesSingleLxcSingleStatusCurrentWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleStatusCurrent Get virtual machine status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleLxcSingleStatusCurrent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleLxcSingleStatusCurrent200Response>> GetNodesSingleLxcSingleStatusCurrentWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleStatusCurrent");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleStatusCurrent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleLxcSingleStatusCurrent200Response>("/nodes/{node}/lxc/{vmid}/status/current", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleStatusCurrent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public GetNodesSingleQemuSingleVncwebsocket200Response GetNodesSingleLxcSingleVncwebsocket(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> localVarResponse = GetNodesSingleLxcSingleVncwebsocketWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleLxcSingleVncwebsocketWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleVncwebsocket");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleVncwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleVncwebsocket200Response>("/nodes/{node}/lxc/{vmid}/vncwebsocket", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleVncwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleLxcSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleLxcSingleVncwebsocketAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> localVarResponse = await GetNodesSingleLxcSingleVncwebsocketWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleLxcSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleVncwebsocket200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response>> GetNodesSingleLxcSingleVncwebsocketWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleLxcSingleVncwebsocket");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleLxcSingleVncwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleVncwebsocket200Response>("/nodes/{node}/lxc/{vmid}/vncwebsocket", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleLxcSingleVncwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleNetstat Read tap/vm network device interface counters
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleNetstat(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleNetstatWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleNetstat Read tap/vm network device interface counters
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleNetstatWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleNetstat");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleNetstat";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/netstat", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleNetstat", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleNetstat Read tap/vm network device interface counters
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleNetstatAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleNetstatWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleNetstat Read tap/vm network device interface counters
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleNetstatWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleNetstat");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleNetstat";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/netstat", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleNetstat", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleNetwork List available networks
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleNetwork200Response</returns>
        public GetNodesSingleNetwork200Response GetNodesSingleNetwork(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleNetwork200Response> localVarResponse = GetNodesSingleNetworkWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleNetwork List available networks
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleNetwork200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleNetwork200Response> GetNodesSingleNetworkWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleNetwork");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleNetwork";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleNetwork200Response>("/nodes/{node}/network", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleNetwork", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleNetwork List available networks
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleNetwork200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleNetwork200Response> GetNodesSingleNetworkAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleNetwork200Response> localVarResponse = await GetNodesSingleNetworkWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleNetwork List available networks
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleNetwork200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleNetwork200Response>> GetNodesSingleNetworkWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleNetwork");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleNetwork";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleNetwork200Response>("/nodes/{node}/network", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleNetwork", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleNetworkSingle Read network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleNetworkSingle200Response</returns>
        public GetNodesSingleNetworkSingle200Response GetNodesSingleNetworkSingle(string iface, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleNetworkSingle200Response> localVarResponse = GetNodesSingleNetworkSingleWithHttpInfo(iface, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleNetworkSingle Read network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleNetworkSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleNetworkSingle200Response> GetNodesSingleNetworkSingleWithHttpInfo(string iface, string node, int operationIndex = 0)
        {
            // verify the required parameter 'iface' is set
            if (iface == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'iface' when calling ProxmoxGeneratedApi->GetNodesSingleNetworkSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleNetworkSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("iface", ProxmoxSharp.Client.ClientUtils.ParameterToString(iface)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleNetworkSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleNetworkSingle200Response>("/nodes/{node}/network/{iface}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleNetworkSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleNetworkSingle Read network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleNetworkSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleNetworkSingle200Response> GetNodesSingleNetworkSingleAsync(string iface, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleNetworkSingle200Response> localVarResponse = await GetNodesSingleNetworkSingleWithHttpInfoAsync(iface, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleNetworkSingle Read network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleNetworkSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleNetworkSingle200Response>> GetNodesSingleNetworkSingleWithHttpInfoAsync(string iface, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'iface' is set
            if (iface == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'iface' when calling ProxmoxGeneratedApi->GetNodesSingleNetworkSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleNetworkSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("iface", ProxmoxSharp.Client.ClientUtils.ParameterToString(iface)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleNetworkSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleNetworkSingle200Response>("/nodes/{node}/network/{iface}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleNetworkSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgent QEMU Guest Agent command index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleAgent200Response</returns>
        public GetNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgent(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgent QEMU Guest Agent command index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgent");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgent QEMU Guest Agent command index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgent QEMU Guest Agent command index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgent");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentExecstatus Gets the status of the given pid started by the guest-agent
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleAgentExecstatus200Response</returns>
        public GetNodesSingleQemuSingleAgentExecstatus200Response GetNodesSingleQemuSingleAgentExecstatus(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgentExecstatus200Response> localVarResponse = GetNodesSingleQemuSingleAgentExecstatusWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentExecstatus Gets the status of the given pid started by the guest-agent
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleAgentExecstatus200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgentExecstatus200Response> GetNodesSingleQemuSingleAgentExecstatusWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentExecstatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentExecstatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleAgentExecstatus200Response>("/nodes/{node}/qemu/{vmid}/agent/exec-status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentExecstatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentExecstatus Gets the status of the given pid started by the guest-agent
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleAgentExecstatus200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleAgentExecstatus200Response> GetNodesSingleQemuSingleAgentExecstatusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgentExecstatus200Response> localVarResponse = await GetNodesSingleQemuSingleAgentExecstatusWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentExecstatus Gets the status of the given pid started by the guest-agent
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleAgentExecstatus200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgentExecstatus200Response>> GetNodesSingleQemuSingleAgentExecstatusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentExecstatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentExecstatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleAgentExecstatus200Response>("/nodes/{node}/qemu/{vmid}/agent/exec-status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentExecstatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentFileread Reads the given file via guest agent. Is limited to 16777216 bytes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleAgentFileread200Response</returns>
        public GetNodesSingleQemuSingleAgentFileread200Response GetNodesSingleQemuSingleAgentFileread(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgentFileread200Response> localVarResponse = GetNodesSingleQemuSingleAgentFilereadWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentFileread Reads the given file via guest agent. Is limited to 16777216 bytes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleAgentFileread200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgentFileread200Response> GetNodesSingleQemuSingleAgentFilereadWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentFileread");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentFileread";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleAgentFileread200Response>("/nodes/{node}/qemu/{vmid}/agent/file-read", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentFileread", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentFileread Reads the given file via guest agent. Is limited to 16777216 bytes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleAgentFileread200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleAgentFileread200Response> GetNodesSingleQemuSingleAgentFilereadAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgentFileread200Response> localVarResponse = await GetNodesSingleQemuSingleAgentFilereadWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentFileread Reads the given file via guest agent. Is limited to 16777216 bytes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleAgentFileread200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleAgentFileread200Response>> GetNodesSingleQemuSingleAgentFilereadWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentFileread");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentFileread";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleAgentFileread200Response>("/nodes/{node}/qemu/{vmid}/agent/file-read", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentFileread", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetfsinfo Execute get-fsinfo.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetfsinfo(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGetfsinfoWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetfsinfo Execute get-fsinfo.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetfsinfoWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetfsinfo");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetfsinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-fsinfo", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetfsinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetfsinfo Execute get-fsinfo.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetfsinfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGetfsinfoWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetfsinfo Execute get-fsinfo.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetfsinfoWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetfsinfo");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetfsinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-fsinfo", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetfsinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGethostname Execute get-host-name.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGethostname(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGethostnameWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGethostname Execute get-host-name.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGethostnameWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGethostname");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGethostname";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-host-name", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGethostname", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGethostname Execute get-host-name.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGethostnameAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGethostnameWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGethostname Execute get-host-name.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGethostnameWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGethostname");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGethostname";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-host-name", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGethostname", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblockinfo Execute get-memory-block-info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetmemoryblockinfo(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGetmemoryblockinfoWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblockinfo Execute get-memory-block-info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetmemoryblockinfoWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetmemoryblockinfo");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetmemoryblockinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetmemoryblockinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblockinfo Execute get-memory-block-info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetmemoryblockinfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGetmemoryblockinfoWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblockinfo Execute get-memory-block-info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetmemoryblockinfoWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetmemoryblockinfo");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetmemoryblockinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetmemoryblockinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblocks Execute get-memory-blocks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetmemoryblocks(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGetmemoryblocksWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblocks Execute get-memory-blocks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetmemoryblocksWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetmemoryblocks");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetmemoryblocks";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetmemoryblocks", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblocks Execute get-memory-blocks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetmemoryblocksAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGetmemoryblocksWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetmemoryblocks Execute get-memory-blocks.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetmemoryblocksWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetmemoryblocks");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetmemoryblocks";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetmemoryblocks", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetosinfo Execute get-osinfo.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetosinfo(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGetosinfoWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetosinfo Execute get-osinfo.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetosinfoWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetosinfo");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetosinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-osinfo", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetosinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetosinfo Execute get-osinfo.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetosinfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGetosinfoWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetosinfo Execute get-osinfo.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetosinfoWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetosinfo");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetosinfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-osinfo", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetosinfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettime Execute get-time.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGettime(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGettimeWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettime Execute get-time.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGettimeWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGettime");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGettime";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-time", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGettime", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettime Execute get-time.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGettimeAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGettimeWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettime Execute get-time.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGettimeWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGettime");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGettime";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-time", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGettime", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettimezone Execute get-timezone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGettimezone(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGettimezoneWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettimezone Execute get-timezone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGettimezoneWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGettimezone");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGettimezone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-timezone", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGettimezone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettimezone Execute get-timezone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGettimezoneAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGettimezoneWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGettimezone Execute get-timezone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGettimezoneWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGettimezone");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGettimezone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-timezone", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGettimezone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetusers Execute get-users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetusers(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGetusersWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetusers Execute get-users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetusersWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetusers");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetusers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-users", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetusers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetusers Execute get-users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetusersAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGetusersWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetusers Execute get-users.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetusersWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetusers");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetusers";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-users", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetusers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetvcpus Execute get-vcpus.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentGetvcpus(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentGetvcpusWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetvcpus Execute get-vcpus.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetvcpusWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetvcpus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetvcpus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-vcpus", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetvcpus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetvcpus Execute get-vcpus.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentGetvcpusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentGetvcpusWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentGetvcpus Execute get-vcpus.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentGetvcpusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentGetvcpus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentGetvcpus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/get-vcpus", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentGetvcpus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentInfo Execute info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentInfo(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentInfoWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentInfo Execute info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentInfoWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentInfo");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentInfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/info", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentInfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentInfo Execute info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentInfoWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentInfo Execute info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentInfoWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentInfo");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentInfo";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/info", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentInfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentNetworkgetinterfaces Execute network-get-interfaces.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleAgent200Response</returns>
        public CreateNodesSingleQemuSingleAgent200Response GetNodesSingleQemuSingleAgentNetworkgetinterfaces(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = GetNodesSingleQemuSingleAgentNetworkgetinterfacesWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentNetworkgetinterfaces Execute network-get-interfaces.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleAgent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentNetworkgetinterfacesWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentNetworkgetinterfaces");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentNetworkgetinterfaces";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentNetworkgetinterfaces", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentNetworkgetinterfaces Execute network-get-interfaces.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleAgent200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleAgent200Response> GetNodesSingleQemuSingleAgentNetworkgetinterfacesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response> localVarResponse = await GetNodesSingleQemuSingleAgentNetworkgetinterfacesWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleAgentNetworkgetinterfaces Execute network-get-interfaces.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleAgent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleAgent200Response>> GetNodesSingleQemuSingleAgentNetworkgetinterfacesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleAgentNetworkgetinterfaces");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleAgentNetworkgetinterfaces";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateNodesSingleQemuSingleAgent200Response>("/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleAgentNetworkgetinterfaces", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleCloudinit Get the cloudinit configuration with both current and pending values.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleCloudinit200Response</returns>
        public GetNodesSingleQemuSingleCloudinit200Response GetNodesSingleQemuSingleCloudinit(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleCloudinit200Response> localVarResponse = GetNodesSingleQemuSingleCloudinitWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleCloudinit Get the cloudinit configuration with both current and pending values.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleCloudinit200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleCloudinit200Response> GetNodesSingleQemuSingleCloudinitWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleCloudinit");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleCloudinit";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleCloudinit200Response>("/nodes/{node}/qemu/{vmid}/cloudinit", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleCloudinit", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleCloudinit Get the cloudinit configuration with both current and pending values.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleCloudinit200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleCloudinit200Response> GetNodesSingleQemuSingleCloudinitAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleCloudinit200Response> localVarResponse = await GetNodesSingleQemuSingleCloudinitWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleCloudinit Get the cloudinit configuration with both current and pending values.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleCloudinit200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleCloudinit200Response>> GetNodesSingleQemuSingleCloudinitWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleCloudinit");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleCloudinit";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleCloudinit200Response>("/nodes/{node}/qemu/{vmid}/cloudinit", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleCloudinit", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleCloudinitDump Get automatically generated cloudinit config.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetNodesSingleQemuSingleCloudinitDump(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetNodesSingleQemuSingleCloudinitDumpWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleCloudinitDump Get automatically generated cloudinit config.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetNodesSingleQemuSingleCloudinitDumpWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleCloudinitDump");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleCloudinitDump";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/cloudinit/dump", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleCloudinitDump", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleCloudinitDump Get automatically generated cloudinit config.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleQemuSingleCloudinitDumpAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetNodesSingleQemuSingleCloudinitDumpWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleCloudinitDump Get automatically generated cloudinit config.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetNodesSingleQemuSingleCloudinitDumpWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleCloudinitDump");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleCloudinitDump";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/cloudinit/dump", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleCloudinitDump", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFeature Check if feature for virtual machine is available.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFeature200Response</returns>
        public GetNodesSingleQemuSingleFeature200Response GetNodesSingleQemuSingleFeature(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFeature200Response> localVarResponse = GetNodesSingleQemuSingleFeatureWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFeature Check if feature for virtual machine is available.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFeature200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFeature200Response> GetNodesSingleQemuSingleFeatureWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFeature");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFeature";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleFeature200Response>("/nodes/{node}/qemu/{vmid}/feature", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFeature", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFeature Check if feature for virtual machine is available.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFeature200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleFeature200Response> GetNodesSingleQemuSingleFeatureAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFeature200Response> localVarResponse = await GetNodesSingleQemuSingleFeatureWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFeature Check if feature for virtual machine is available.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFeature200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFeature200Response>> GetNodesSingleQemuSingleFeatureWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFeature");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFeature";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleFeature200Response>("/nodes/{node}/qemu/{vmid}/feature", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFeature", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallAliases200Response</returns>
        public GetClusterFirewallAliases200Response GetNodesSingleQemuSingleFirewallAliases(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> localVarResponse = GetNodesSingleQemuSingleFirewallAliasesWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallAliases200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> GetNodesSingleQemuSingleFirewallAliasesWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallAliases");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallAliases200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallAliases200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallAliases200Response> GetNodesSingleQemuSingleFirewallAliasesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response> localVarResponse = await GetNodesSingleQemuSingleFirewallAliasesWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliases List aliases
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallAliases200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallAliases200Response>> GetNodesSingleQemuSingleFirewallAliasesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallAliases");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFirewallAliases";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallAliases200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFirewallAliases", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetNodesSingleQemuSingleFirewallAliasesSingle(string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleQemuSingleFirewallAliasesSingleAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallAliasesSingle Read alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleQemuSingleFirewallLog(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = GetNodesSingleQemuSingleFirewallLogWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleQemuSingleFirewallLogWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallLog");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFirewallLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/qemu/{vmid}/firewall/log", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFirewallLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleQemuSingleFirewallLogAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = await GetNodesSingleQemuSingleFirewallLogWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallLog Read firewall log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleQemuSingleFirewallLogWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallLog");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFirewallLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/qemu/{vmid}/firewall/log", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFirewallLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallRefs200Response</returns>
        public GetClusterFirewallRefs200Response GetNodesSingleQemuSingleFirewallRefs(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> localVarResponse = GetNodesSingleQemuSingleFirewallRefsWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallRefs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> GetNodesSingleQemuSingleFirewallRefsWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallRefs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFirewallRefs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallRefs200Response>("/nodes/{node}/qemu/{vmid}/firewall/refs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFirewallRefs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallRefs200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallRefs200Response> GetNodesSingleQemuSingleFirewallRefsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response> localVarResponse = await GetNodesSingleQemuSingleFirewallRefsWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleFirewallRefs Lists possible IPSet/Alias reference which are allowed in source/dest properties.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallRefs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallRefs200Response>> GetNodesSingleQemuSingleFirewallRefsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleFirewallRefs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleFirewallRefs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallRefs200Response>("/nodes/{node}/qemu/{vmid}/firewall/refs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleFirewallRefs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleMtunnelwebsocket Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        public GetNodesSingleQemuSingleMtunnelwebsocket200Response GetNodesSingleQemuSingleMtunnelwebsocket(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response> localVarResponse = GetNodesSingleQemuSingleMtunnelwebsocketWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleMtunnelwebsocket Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response> GetNodesSingleQemuSingleMtunnelwebsocketWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleMtunnelwebsocket");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleMtunnelwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleMtunnelwebsocket200Response>("/nodes/{node}/qemu/{vmid}/mtunnelwebsocket", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleMtunnelwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleMtunnelwebsocket Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleMtunnelwebsocket200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleMtunnelwebsocket200Response> GetNodesSingleQemuSingleMtunnelwebsocketAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response> localVarResponse = await GetNodesSingleQemuSingleMtunnelwebsocketWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleMtunnelwebsocket Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleMtunnelwebsocket200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleMtunnelwebsocket200Response>> GetNodesSingleQemuSingleMtunnelwebsocketWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleMtunnelwebsocket");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleMtunnelwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleMtunnelwebsocket200Response>("/nodes/{node}/qemu/{vmid}/mtunnelwebsocket", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleMtunnelwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public GetNodesSingleQemuSingleVncwebsocket200Response GetNodesSingleQemuSingleVncwebsocket(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> localVarResponse = GetNodesSingleQemuSingleVncwebsocketWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleQemuSingleVncwebsocketWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleVncwebsocket");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleVncwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleVncwebsocket200Response>("/nodes/{node}/qemu/{vmid}/vncwebsocket", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleVncwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQemuSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleQemuSingleVncwebsocketAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> localVarResponse = await GetNodesSingleQemuSingleVncwebsocketWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQemuSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleVncwebsocket200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response>> GetNodesSingleQemuSingleVncwebsocketWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQemuSingleVncwebsocket");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQemuSingleVncwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleVncwebsocket200Response>("/nodes/{node}/qemu/{vmid}/vncwebsocket", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQemuSingleVncwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQueryocirepotags List all tags for an OCI repository reference.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleJournal200Response</returns>
        public GetNodesSingleJournal200Response GetNodesSingleQueryocirepotags(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleJournal200Response> localVarResponse = GetNodesSingleQueryocirepotagsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQueryocirepotags List all tags for an OCI repository reference.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleJournal200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleJournal200Response> GetNodesSingleQueryocirepotagsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQueryocirepotags");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQueryocirepotags";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleJournal200Response>("/nodes/{node}/query-oci-repo-tags", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQueryocirepotags", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQueryocirepotags List all tags for an OCI repository reference.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleJournal200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleJournal200Response> GetNodesSingleQueryocirepotagsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleJournal200Response> localVarResponse = await GetNodesSingleQueryocirepotagsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQueryocirepotags List all tags for an OCI repository reference.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleJournal200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleJournal200Response>> GetNodesSingleQueryocirepotagsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQueryocirepotags");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQueryocirepotags";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleJournal200Response>("/nodes/{node}/query-oci-repo-tags", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQueryocirepotags", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQueryurlmetadata Query metadata of an URL: file size, file name and mime type.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQueryurlmetadata200Response</returns>
        public GetNodesSingleQueryurlmetadata200Response GetNodesSingleQueryurlmetadata(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQueryurlmetadata200Response> localVarResponse = GetNodesSingleQueryurlmetadataWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQueryurlmetadata Query metadata of an URL: file size, file name and mime type.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQueryurlmetadata200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQueryurlmetadata200Response> GetNodesSingleQueryurlmetadataWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQueryurlmetadata");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQueryurlmetadata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQueryurlmetadata200Response>("/nodes/{node}/query-url-metadata", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQueryurlmetadata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleQueryurlmetadata Query metadata of an URL: file size, file name and mime type.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQueryurlmetadata200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQueryurlmetadata200Response> GetNodesSingleQueryurlmetadataAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQueryurlmetadata200Response> localVarResponse = await GetNodesSingleQueryurlmetadataWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleQueryurlmetadata Query metadata of an URL: file size, file name and mime type.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQueryurlmetadata200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQueryurlmetadata200Response>> GetNodesSingleQueryurlmetadataWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleQueryurlmetadata");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleQueryurlmetadata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQueryurlmetadata200Response>("/nodes/{node}/query-url-metadata", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleQueryurlmetadata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReplication List status of all replication jobs on this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterHa200Response</returns>
        public GetClusterHa200Response GetNodesSingleReplication(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> localVarResponse = GetNodesSingleReplicationWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReplication List status of all replication jobs on this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterHa200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> GetNodesSingleReplicationWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReplication");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReplication";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterHa200Response>("/nodes/{node}/replication", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReplication", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReplication List status of all replication jobs on this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterHa200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterHa200Response> GetNodesSingleReplicationAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response> localVarResponse = await GetNodesSingleReplicationWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReplication List status of all replication jobs on this node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterHa200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterHa200Response>> GetNodesSingleReplicationWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReplication");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReplication";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterHa200Response>("/nodes/{node}/replication", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReplication", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReplicationSingle Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleReplicationSingle(string id, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleReplicationSingleWithHttpInfo(id, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReplicationSingle Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleReplicationSingleWithHttpInfo(string id, string node, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReplicationSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/replication/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReplicationSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReplicationSingle Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleReplicationSingleAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleReplicationSingleWithHttpInfoAsync(id, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReplicationSingle Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleReplicationSingleWithHttpInfoAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReplicationSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/replication/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReplicationSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReplicationSingleLog Read replication job log.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleReplicationSingleLog(string id, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = GetNodesSingleReplicationSingleLogWithHttpInfo(id, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReplicationSingleLog Read replication job log.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleReplicationSingleLogWithHttpInfo(string id, string node, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingleLog");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingleLog");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReplicationSingleLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/replication/{id}/log", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReplicationSingleLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReplicationSingleLog Read replication job log.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleReplicationSingleLogAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = await GetNodesSingleReplicationSingleLogWithHttpInfoAsync(id, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReplicationSingleLog Read replication job log.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleReplicationSingleLogWithHttpInfoAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingleLog");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingleLog");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReplicationSingleLog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/replication/{id}/log", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReplicationSingleLog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReplicationSingleStatus Get replication job status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetNodesSingleReplicationSingleStatus(string id, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetNodesSingleReplicationSingleStatusWithHttpInfo(id, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReplicationSingleStatus Get replication job status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetNodesSingleReplicationSingleStatusWithHttpInfo(string id, string node, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingleStatus");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingleStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReplicationSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/replication/{id}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReplicationSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReplicationSingleStatus Get replication job status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetNodesSingleReplicationSingleStatusAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetNodesSingleReplicationSingleStatusWithHttpInfoAsync(id, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReplicationSingleStatus Get replication job status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetNodesSingleReplicationSingleStatusWithHttpInfoAsync(string id, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingleStatus");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReplicationSingleStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReplicationSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/replication/{id}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReplicationSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReport Gather various systems information about a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetNodesSingleReport(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetNodesSingleReportWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReport Gather various systems information about a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetNodesSingleReportWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReport");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReport";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/nodes/{node}/report", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReport", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleReport Gather various systems information about a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleReportAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetNodesSingleReportWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleReport Gather various systems information about a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetNodesSingleReportWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleReport");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleReport";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/nodes/{node}/report", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleReport", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScan Index of available scan methods
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScan200Response</returns>
        public GetNodesSingleScan200Response GetNodesSingleScan(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScan200Response> localVarResponse = GetNodesSingleScanWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScan Index of available scan methods
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScan200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScan200Response> GetNodesSingleScanWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScan");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScan";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScan200Response>("/nodes/{node}/scan", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScan", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScan Index of available scan methods
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScan200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScan200Response> GetNodesSingleScanAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScan200Response> localVarResponse = await GetNodesSingleScanWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScan Index of available scan methods
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScan200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScan200Response>> GetNodesSingleScanWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScan");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScan";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScan200Response>("/nodes/{node}/scan", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScan", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanCifs Scan remote CIFS server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanCifs200Response</returns>
        public GetNodesSingleScanCifs200Response GetNodesSingleScanCifs(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanCifs200Response> localVarResponse = GetNodesSingleScanCifsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanCifs Scan remote CIFS server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanCifs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanCifs200Response> GetNodesSingleScanCifsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanCifs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanCifs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScanCifs200Response>("/nodes/{node}/scan/cifs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanCifs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanCifs Scan remote CIFS server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanCifs200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScanCifs200Response> GetNodesSingleScanCifsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanCifs200Response> localVarResponse = await GetNodesSingleScanCifsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanCifs Scan remote CIFS server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanCifs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanCifs200Response>> GetNodesSingleScanCifsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanCifs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanCifs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScanCifs200Response>("/nodes/{node}/scan/cifs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanCifs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanIscsi Scan remote iSCSI server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanIscsi200Response</returns>
        public GetNodesSingleScanIscsi200Response GetNodesSingleScanIscsi(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanIscsi200Response> localVarResponse = GetNodesSingleScanIscsiWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanIscsi Scan remote iSCSI server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanIscsi200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanIscsi200Response> GetNodesSingleScanIscsiWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanIscsi");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanIscsi";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScanIscsi200Response>("/nodes/{node}/scan/iscsi", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanIscsi", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanIscsi Scan remote iSCSI server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanIscsi200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScanIscsi200Response> GetNodesSingleScanIscsiAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanIscsi200Response> localVarResponse = await GetNodesSingleScanIscsiWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanIscsi Scan remote iSCSI server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanIscsi200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanIscsi200Response>> GetNodesSingleScanIscsiWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanIscsi");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanIscsi";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScanIscsi200Response>("/nodes/{node}/scan/iscsi", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanIscsi", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanLvm List local LVM volume groups.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanLvm200Response</returns>
        public GetNodesSingleScanLvm200Response GetNodesSingleScanLvm(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanLvm200Response> localVarResponse = GetNodesSingleScanLvmWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanLvm List local LVM volume groups.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanLvm200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanLvm200Response> GetNodesSingleScanLvmWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanLvm");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanLvm";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScanLvm200Response>("/nodes/{node}/scan/lvm", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanLvm", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanLvm List local LVM volume groups.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanLvm200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScanLvm200Response> GetNodesSingleScanLvmAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanLvm200Response> localVarResponse = await GetNodesSingleScanLvmWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanLvm List local LVM volume groups.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanLvm200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanLvm200Response>> GetNodesSingleScanLvmWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanLvm");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanLvm";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScanLvm200Response>("/nodes/{node}/scan/lvm", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanLvm", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanLvmthin List local LVM Thin Pools.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanLvmthin200Response</returns>
        public GetNodesSingleScanLvmthin200Response GetNodesSingleScanLvmthin(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanLvmthin200Response> localVarResponse = GetNodesSingleScanLvmthinWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanLvmthin List local LVM Thin Pools.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanLvmthin200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanLvmthin200Response> GetNodesSingleScanLvmthinWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanLvmthin");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanLvmthin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScanLvmthin200Response>("/nodes/{node}/scan/lvmthin", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanLvmthin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanLvmthin List local LVM Thin Pools.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanLvmthin200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScanLvmthin200Response> GetNodesSingleScanLvmthinAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanLvmthin200Response> localVarResponse = await GetNodesSingleScanLvmthinWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanLvmthin List local LVM Thin Pools.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanLvmthin200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanLvmthin200Response>> GetNodesSingleScanLvmthinWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanLvmthin");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanLvmthin";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScanLvmthin200Response>("/nodes/{node}/scan/lvmthin", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanLvmthin", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanNfs Scan remote NFS server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanNfs200Response</returns>
        public GetNodesSingleScanNfs200Response GetNodesSingleScanNfs(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanNfs200Response> localVarResponse = GetNodesSingleScanNfsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanNfs Scan remote NFS server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanNfs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanNfs200Response> GetNodesSingleScanNfsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanNfs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanNfs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScanNfs200Response>("/nodes/{node}/scan/nfs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanNfs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanNfs Scan remote NFS server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanNfs200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScanNfs200Response> GetNodesSingleScanNfsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanNfs200Response> localVarResponse = await GetNodesSingleScanNfsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanNfs Scan remote NFS server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanNfs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanNfs200Response>> GetNodesSingleScanNfsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanNfs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanNfs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScanNfs200Response>("/nodes/{node}/scan/nfs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanNfs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanPbs Scan remote Proxmox Backup Server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanPbs200Response</returns>
        public GetNodesSingleScanPbs200Response GetNodesSingleScanPbs(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanPbs200Response> localVarResponse = GetNodesSingleScanPbsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanPbs Scan remote Proxmox Backup Server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanPbs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanPbs200Response> GetNodesSingleScanPbsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanPbs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanPbs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScanPbs200Response>("/nodes/{node}/scan/pbs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanPbs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanPbs Scan remote Proxmox Backup Server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanPbs200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScanPbs200Response> GetNodesSingleScanPbsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanPbs200Response> localVarResponse = await GetNodesSingleScanPbsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanPbs Scan remote Proxmox Backup Server.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanPbs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanPbs200Response>> GetNodesSingleScanPbsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanPbs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanPbs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScanPbs200Response>("/nodes/{node}/scan/pbs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanPbs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanZfs Scan zfs pool list on local node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleScanZfs200Response</returns>
        public GetNodesSingleScanZfs200Response GetNodesSingleScanZfs(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanZfs200Response> localVarResponse = GetNodesSingleScanZfsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanZfs Scan zfs pool list on local node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleScanZfs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanZfs200Response> GetNodesSingleScanZfsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanZfs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanZfs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleScanZfs200Response>("/nodes/{node}/scan/zfs", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanZfs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleScanZfs Scan zfs pool list on local node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleScanZfs200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleScanZfs200Response> GetNodesSingleScanZfsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanZfs200Response> localVarResponse = await GetNodesSingleScanZfsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleScanZfs Scan zfs pool list on local node.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleScanZfs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleScanZfs200Response>> GetNodesSingleScanZfsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleScanZfs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleScanZfs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleScanZfs200Response>("/nodes/{node}/scan/zfs", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleScanZfs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingle Directory index for SDN fabric status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetNodesSingleSdnFabricsSingle(string fabric, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetNodesSingleSdnFabricsSingleWithHttpInfo(fabric, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingle Directory index for SDN fabric status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleSdnFabricsSingleWithHttpInfo(string fabric, string node, int operationIndex = 0)
        {
            // verify the required parameter 'fabric' is set
            if (fabric == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabric' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabric)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnFabricsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/sdn/fabrics/{fabric}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnFabricsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingle Directory index for SDN fabric status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleSdnFabricsSingleAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetNodesSingleSdnFabricsSingleWithHttpInfoAsync(fabric, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingle Directory index for SDN fabric status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleSdnFabricsSingleWithHttpInfoAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabric' is set
            if (fabric == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabric' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabric)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnFabricsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/sdn/fabrics/{fabric}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnFabricsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleInterfaces Get all interfaces for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnFabricsSingleInterfaces200Response</returns>
        public GetNodesSingleSdnFabricsSingleInterfaces200Response GetNodesSingleSdnFabricsSingleInterfaces(string fabric, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleInterfaces200Response> localVarResponse = GetNodesSingleSdnFabricsSingleInterfacesWithHttpInfo(fabric, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleInterfaces Get all interfaces for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnFabricsSingleInterfaces200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleInterfaces200Response> GetNodesSingleSdnFabricsSingleInterfacesWithHttpInfo(string fabric, string node, int operationIndex = 0)
        {
            // verify the required parameter 'fabric' is set
            if (fabric == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabric' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleInterfaces");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleInterfaces");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabric)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnFabricsSingleInterfaces";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleSdnFabricsSingleInterfaces200Response>("/nodes/{node}/sdn/fabrics/{fabric}/interfaces", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnFabricsSingleInterfaces", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleInterfaces Get all interfaces for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnFabricsSingleInterfaces200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleSdnFabricsSingleInterfaces200Response> GetNodesSingleSdnFabricsSingleInterfacesAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleInterfaces200Response> localVarResponse = await GetNodesSingleSdnFabricsSingleInterfacesWithHttpInfoAsync(fabric, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleInterfaces Get all interfaces for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnFabricsSingleInterfaces200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleInterfaces200Response>> GetNodesSingleSdnFabricsSingleInterfacesWithHttpInfoAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabric' is set
            if (fabric == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabric' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleInterfaces");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleInterfaces");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabric)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnFabricsSingleInterfaces";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleSdnFabricsSingleInterfaces200Response>("/nodes/{node}/sdn/fabrics/{fabric}/interfaces", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnFabricsSingleInterfaces", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleNeighbors Get all neighbors for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnFabricsSingleNeighbors200Response</returns>
        public GetNodesSingleSdnFabricsSingleNeighbors200Response GetNodesSingleSdnFabricsSingleNeighbors(string fabric, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleNeighbors200Response> localVarResponse = GetNodesSingleSdnFabricsSingleNeighborsWithHttpInfo(fabric, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleNeighbors Get all neighbors for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnFabricsSingleNeighbors200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleNeighbors200Response> GetNodesSingleSdnFabricsSingleNeighborsWithHttpInfo(string fabric, string node, int operationIndex = 0)
        {
            // verify the required parameter 'fabric' is set
            if (fabric == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabric' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleNeighbors");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleNeighbors");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabric)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnFabricsSingleNeighbors";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleSdnFabricsSingleNeighbors200Response>("/nodes/{node}/sdn/fabrics/{fabric}/neighbors", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnFabricsSingleNeighbors", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleNeighbors Get all neighbors for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnFabricsSingleNeighbors200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleSdnFabricsSingleNeighbors200Response> GetNodesSingleSdnFabricsSingleNeighborsAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleNeighbors200Response> localVarResponse = await GetNodesSingleSdnFabricsSingleNeighborsWithHttpInfoAsync(fabric, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleNeighbors Get all neighbors for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnFabricsSingleNeighbors200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleNeighbors200Response>> GetNodesSingleSdnFabricsSingleNeighborsWithHttpInfoAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabric' is set
            if (fabric == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabric' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleNeighbors");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleNeighbors");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabric)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnFabricsSingleNeighbors";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleSdnFabricsSingleNeighbors200Response>("/nodes/{node}/sdn/fabrics/{fabric}/neighbors", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnFabricsSingleNeighbors", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleRoutes Get all routes for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnFabricsSingleRoutes200Response</returns>
        public GetNodesSingleSdnFabricsSingleRoutes200Response GetNodesSingleSdnFabricsSingleRoutes(string fabric, string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleRoutes200Response> localVarResponse = GetNodesSingleSdnFabricsSingleRoutesWithHttpInfo(fabric, node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleRoutes Get all routes for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnFabricsSingleRoutes200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleRoutes200Response> GetNodesSingleSdnFabricsSingleRoutesWithHttpInfo(string fabric, string node, int operationIndex = 0)
        {
            // verify the required parameter 'fabric' is set
            if (fabric == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabric' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleRoutes");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleRoutes");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabric)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnFabricsSingleRoutes";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleSdnFabricsSingleRoutes200Response>("/nodes/{node}/sdn/fabrics/{fabric}/routes", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnFabricsSingleRoutes", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleRoutes Get all routes for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnFabricsSingleRoutes200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleSdnFabricsSingleRoutes200Response> GetNodesSingleSdnFabricsSingleRoutesAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleRoutes200Response> localVarResponse = await GetNodesSingleSdnFabricsSingleRoutesWithHttpInfoAsync(fabric, node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnFabricsSingleRoutes Get all routes for a fabric.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabric">fabric</param>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnFabricsSingleRoutes200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnFabricsSingleRoutes200Response>> GetNodesSingleSdnFabricsSingleRoutesWithHttpInfoAsync(string fabric, string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabric' is set
            if (fabric == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabric' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleRoutes");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnFabricsSingleRoutes");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabric)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnFabricsSingleRoutes";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleSdnFabricsSingleRoutes200Response>("/nodes/{node}/sdn/fabrics/{fabric}/routes", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnFabricsSingleRoutes", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnVnetsSingle getNodesSingleSdnVnetsSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetNodesSingleSdnVnetsSingle(string node, string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetNodesSingleSdnVnetsSingleWithHttpInfo(node, vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnVnetsSingle getNodesSingleSdnVnetsSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleSdnVnetsSingleWithHttpInfo(string node, string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnVnetsSingle");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetNodesSingleSdnVnetsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnVnetsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/sdn/vnets/{vnet}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnVnetsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnVnetsSingle getNodesSingleSdnVnetsSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleSdnVnetsSingleAsync(string node, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetNodesSingleSdnVnetsSingleWithHttpInfoAsync(node, vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnVnetsSingle getNodesSingleSdnVnetsSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleSdnVnetsSingleWithHttpInfoAsync(string node, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnVnetsSingle");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetNodesSingleSdnVnetsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnVnetsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/sdn/vnets/{vnet}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnVnetsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnVnetsSingleMacvrf Get the MAC VRF for a VNet in an EVPN zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnVnetsSingleMacvrf200Response</returns>
        public GetNodesSingleSdnVnetsSingleMacvrf200Response GetNodesSingleSdnVnetsSingleMacvrf(string node, string vnet, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnVnetsSingleMacvrf200Response> localVarResponse = GetNodesSingleSdnVnetsSingleMacvrfWithHttpInfo(node, vnet);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnVnetsSingleMacvrf Get the MAC VRF for a VNet in an EVPN zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnVnetsSingleMacvrf200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnVnetsSingleMacvrf200Response> GetNodesSingleSdnVnetsSingleMacvrfWithHttpInfo(string node, string vnet, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnVnetsSingleMacvrf");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetNodesSingleSdnVnetsSingleMacvrf");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnVnetsSingleMacvrf";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleSdnVnetsSingleMacvrf200Response>("/nodes/{node}/sdn/vnets/{vnet}/mac-vrf", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnVnetsSingleMacvrf", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnVnetsSingleMacvrf Get the MAC VRF for a VNet in an EVPN zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnVnetsSingleMacvrf200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleSdnVnetsSingleMacvrf200Response> GetNodesSingleSdnVnetsSingleMacvrfAsync(string node, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnVnetsSingleMacvrf200Response> localVarResponse = await GetNodesSingleSdnVnetsSingleMacvrfWithHttpInfoAsync(node, vnet, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnVnetsSingleMacvrf Get the MAC VRF for a VNet in an EVPN zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vnet">vnet</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnVnetsSingleMacvrf200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnVnetsSingleMacvrf200Response>> GetNodesSingleSdnVnetsSingleMacvrfWithHttpInfoAsync(string node, string vnet, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnVnetsSingleMacvrf");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->GetNodesSingleSdnVnetsSingleMacvrf");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnVnetsSingleMacvrf";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleSdnVnetsSingleMacvrf200Response>("/nodes/{node}/sdn/vnets/{vnet}/mac-vrf", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnVnetsSingleMacvrf", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnZonesSingleBridges Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnZonesSingleBridges200Response</returns>
        public GetNodesSingleSdnZonesSingleBridges200Response GetNodesSingleSdnZonesSingleBridges(string node, string zone, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnZonesSingleBridges200Response> localVarResponse = GetNodesSingleSdnZonesSingleBridgesWithHttpInfo(node, zone);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnZonesSingleBridges Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnZonesSingleBridges200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnZonesSingleBridges200Response> GetNodesSingleSdnZonesSingleBridgesWithHttpInfo(string node, string zone, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnZonesSingleBridges");
            }

            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetNodesSingleSdnZonesSingleBridges");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnZonesSingleBridges";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleSdnZonesSingleBridges200Response>("/nodes/{node}/sdn/zones/{zone}/bridges", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnZonesSingleBridges", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnZonesSingleBridges Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnZonesSingleBridges200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleSdnZonesSingleBridges200Response> GetNodesSingleSdnZonesSingleBridgesAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnZonesSingleBridges200Response> localVarResponse = await GetNodesSingleSdnZonesSingleBridgesWithHttpInfoAsync(node, zone, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnZonesSingleBridges Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnZonesSingleBridges200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnZonesSingleBridges200Response>> GetNodesSingleSdnZonesSingleBridgesWithHttpInfoAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnZonesSingleBridges");
            }

            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetNodesSingleSdnZonesSingleBridges");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnZonesSingleBridges";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleSdnZonesSingleBridges200Response>("/nodes/{node}/sdn/zones/{zone}/bridges", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnZonesSingleBridges", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnZonesSingleIpvrf Get the IP VRF of an EVPN zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSdnZonesSingleIpvrf200Response</returns>
        public GetNodesSingleSdnZonesSingleIpvrf200Response GetNodesSingleSdnZonesSingleIpvrf(string node, string zone, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnZonesSingleIpvrf200Response> localVarResponse = GetNodesSingleSdnZonesSingleIpvrfWithHttpInfo(node, zone);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnZonesSingleIpvrf Get the IP VRF of an EVPN zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSdnZonesSingleIpvrf200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnZonesSingleIpvrf200Response> GetNodesSingleSdnZonesSingleIpvrfWithHttpInfo(string node, string zone, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnZonesSingleIpvrf");
            }

            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetNodesSingleSdnZonesSingleIpvrf");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnZonesSingleIpvrf";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleSdnZonesSingleIpvrf200Response>("/nodes/{node}/sdn/zones/{zone}/ip-vrf", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnZonesSingleIpvrf", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSdnZonesSingleIpvrf Get the IP VRF of an EVPN zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSdnZonesSingleIpvrf200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleSdnZonesSingleIpvrf200Response> GetNodesSingleSdnZonesSingleIpvrfAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnZonesSingleIpvrf200Response> localVarResponse = await GetNodesSingleSdnZonesSingleIpvrfWithHttpInfoAsync(node, zone, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSdnZonesSingleIpvrf Get the IP VRF of an EVPN zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="zone">zone</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSdnZonesSingleIpvrf200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleSdnZonesSingleIpvrf200Response>> GetNodesSingleSdnZonesSingleIpvrfWithHttpInfoAsync(string node, string zone, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSdnZonesSingleIpvrf");
            }

            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->GetNodesSingleSdnZonesSingleIpvrf");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSdnZonesSingleIpvrf";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleSdnZonesSingleIpvrf200Response>("/nodes/{node}/sdn/zones/{zone}/ip-vrf", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSdnZonesSingleIpvrf", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleServices Service list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleServices200Response</returns>
        public GetNodesSingleServices200Response GetNodesSingleServices(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleServices200Response> localVarResponse = GetNodesSingleServicesWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleServices Service list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleServices200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleServices200Response> GetNodesSingleServicesWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleServices");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleServices";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleServices200Response>("/nodes/{node}/services", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleServices", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleServices Service list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleServices200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleServices200Response> GetNodesSingleServicesAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleServices200Response> localVarResponse = await GetNodesSingleServicesWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleServices Service list.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleServices200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleServices200Response>> GetNodesSingleServicesWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleServices");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleServices";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleServices200Response>("/nodes/{node}/services", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleServices", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleServicesSingle Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetNodesSingleServicesSingle(string node, string service, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetNodesSingleServicesSingleWithHttpInfo(node, service);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleServicesSingle Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleServicesSingleWithHttpInfo(string node, string service, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleServicesSingle");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->GetNodesSingleServicesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleServicesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/services/{service}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleServicesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleServicesSingle Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleServicesSingleAsync(string node, string service, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetNodesSingleServicesSingleWithHttpInfoAsync(node, service, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleServicesSingle Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleServicesSingleWithHttpInfoAsync(string node, string service, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleServicesSingle");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->GetNodesSingleServicesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleServicesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/services/{service}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleServicesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleServicesSingleState Read service properties
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleServicesSingleState200Response</returns>
        public GetNodesSingleServicesSingleState200Response GetNodesSingleServicesSingleState(string node, string service, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleServicesSingleState200Response> localVarResponse = GetNodesSingleServicesSingleStateWithHttpInfo(node, service);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleServicesSingleState Read service properties
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleServicesSingleState200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleServicesSingleState200Response> GetNodesSingleServicesSingleStateWithHttpInfo(string node, string service, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleServicesSingleState");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->GetNodesSingleServicesSingleState");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleServicesSingleState";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleServicesSingleState200Response>("/nodes/{node}/services/{service}/state", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleServicesSingleState", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleServicesSingleState Read service properties
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleServicesSingleState200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleServicesSingleState200Response> GetNodesSingleServicesSingleStateAsync(string node, string service, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleServicesSingleState200Response> localVarResponse = await GetNodesSingleServicesSingleStateWithHttpInfoAsync(node, service, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleServicesSingleState Read service properties
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="service">service</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleServicesSingleState200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleServicesSingleState200Response>> GetNodesSingleServicesSingleStateWithHttpInfoAsync(string node, string service, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleServicesSingleState");
            }

            // verify the required parameter 'service' is set
            if (service == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'service' when calling ProxmoxGeneratedApi->GetNodesSingleServicesSingleState");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("service", ProxmoxSharp.Client.ClientUtils.ParameterToString(service)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleServicesSingleState";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleServicesSingleState200Response>("/nodes/{node}/services/{service}/state", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleServicesSingleState", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStatus Read node status
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStatus200Response</returns>
        public GetNodesSingleStatus200Response GetNodesSingleStatus(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStatus200Response> localVarResponse = GetNodesSingleStatusWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStatus Read node status
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStatus200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStatus200Response> GetNodesSingleStatusWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStatus200Response>("/nodes/{node}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStatus Read node status
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStatus200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStatus200Response> GetNodesSingleStatusAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStatus200Response> localVarResponse = await GetNodesSingleStatusWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStatus Read node status
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStatus200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStatus200Response>> GetNodesSingleStatusWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStatus200Response>("/nodes/{node}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorage Get status for all datastores.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorage200Response</returns>
        public GetNodesSingleStorage200Response GetNodesSingleStorage(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorage200Response> localVarResponse = GetNodesSingleStorageWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorage Get status for all datastores.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorage200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorage200Response> GetNodesSingleStorageWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorage");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorage";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStorage200Response>("/nodes/{node}/storage", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorage Get status for all datastores.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorage200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStorage200Response> GetNodesSingleStorageAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorage200Response> localVarResponse = await GetNodesSingleStorageWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorage Get status for all datastores.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorage200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorage200Response>> GetNodesSingleStorageWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorage");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorage";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStorage200Response>("/nodes/{node}/storage", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingle getNodesSingleStorageSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetNodesSingleStorageSingle(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetNodesSingleStorageSingleWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingle getNodesSingleStorageSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetNodesSingleStorageSingleWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/storage/{storage}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingle getNodesSingleStorageSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetNodesSingleStorageSingleAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetNodesSingleStorageSingleWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingle getNodesSingleStorageSingle
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetNodesSingleStorageSingleWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/storage/{storage}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleContent List storage content.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleContent200Response</returns>
        public GetNodesSingleStorageSingleContent200Response GetNodesSingleStorageSingleContent(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleContent200Response> localVarResponse = GetNodesSingleStorageSingleContentWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleContent List storage content.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleContent200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleContent200Response> GetNodesSingleStorageSingleContentWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContent");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContent");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleContent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStorageSingleContent200Response>("/nodes/{node}/storage/{storage}/content", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleContent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleContent List storage content.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleContent200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStorageSingleContent200Response> GetNodesSingleStorageSingleContentAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleContent200Response> localVarResponse = await GetNodesSingleStorageSingleContentWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleContent List storage content.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleContent200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleContent200Response>> GetNodesSingleStorageSingleContentWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContent");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContent");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleContent";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStorageSingleContent200Response>("/nodes/{node}/storage/{storage}/content", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleContent", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleContentSingle Get volume attributes
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleContentSingle200Response</returns>
        public GetNodesSingleStorageSingleContentSingle200Response GetNodesSingleStorageSingleContentSingle(string node, string storage, string volume, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleContentSingle200Response> localVarResponse = GetNodesSingleStorageSingleContentSingleWithHttpInfo(node, storage, volume);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleContentSingle Get volume attributes
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleContentSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleContentSingle200Response> GetNodesSingleStorageSingleContentSingleWithHttpInfo(string node, string storage, string volume, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'volume' is set
            if (volume == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'volume' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContentSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.PathParameters.Add("volume", ProxmoxSharp.Client.ClientUtils.ParameterToString(volume)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleContentSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStorageSingleContentSingle200Response>("/nodes/{node}/storage/{storage}/content/{volume}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleContentSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleContentSingle Get volume attributes
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleContentSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStorageSingleContentSingle200Response> GetNodesSingleStorageSingleContentSingleAsync(string node, string storage, string volume, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleContentSingle200Response> localVarResponse = await GetNodesSingleStorageSingleContentSingleWithHttpInfoAsync(node, storage, volume, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleContentSingle Get volume attributes
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleContentSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleContentSingle200Response>> GetNodesSingleStorageSingleContentSingleWithHttpInfoAsync(string node, string storage, string volume, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'volume' is set
            if (volume == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'volume' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleContentSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.PathParameters.Add("volume", ProxmoxSharp.Client.ClientUtils.ParameterToString(volume)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleContentSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStorageSingleContentSingle200Response>("/nodes/{node}/storage/{storage}/content/{volume}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleContentSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreDownload Extract a file or directory (as zip archive) from a PBS backup.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleFilerestoreDownload200Response</returns>
        public GetNodesSingleStorageSingleFilerestoreDownload200Response GetNodesSingleStorageSingleFilerestoreDownload(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleFilerestoreDownload200Response> localVarResponse = GetNodesSingleStorageSingleFilerestoreDownloadWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreDownload Extract a file or directory (as zip archive) from a PBS backup.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleFilerestoreDownload200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleFilerestoreDownload200Response> GetNodesSingleStorageSingleFilerestoreDownloadWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleFilerestoreDownload");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleFilerestoreDownload");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleFilerestoreDownload";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStorageSingleFilerestoreDownload200Response>("/nodes/{node}/storage/{storage}/file-restore/download", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleFilerestoreDownload", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreDownload Extract a file or directory (as zip archive) from a PBS backup.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleFilerestoreDownload200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStorageSingleFilerestoreDownload200Response> GetNodesSingleStorageSingleFilerestoreDownloadAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleFilerestoreDownload200Response> localVarResponse = await GetNodesSingleStorageSingleFilerestoreDownloadWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreDownload Extract a file or directory (as zip archive) from a PBS backup.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleFilerestoreDownload200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleFilerestoreDownload200Response>> GetNodesSingleStorageSingleFilerestoreDownloadWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleFilerestoreDownload");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleFilerestoreDownload");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleFilerestoreDownload";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStorageSingleFilerestoreDownload200Response>("/nodes/{node}/storage/{storage}/file-restore/download", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleFilerestoreDownload", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreList List files and directories for single file restore under the given path.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleFilerestoreList200Response</returns>
        public GetNodesSingleStorageSingleFilerestoreList200Response GetNodesSingleStorageSingleFilerestoreList(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleFilerestoreList200Response> localVarResponse = GetNodesSingleStorageSingleFilerestoreListWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreList List files and directories for single file restore under the given path.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleFilerestoreList200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleFilerestoreList200Response> GetNodesSingleStorageSingleFilerestoreListWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleFilerestoreList");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleFilerestoreList");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleFilerestoreList";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStorageSingleFilerestoreList200Response>("/nodes/{node}/storage/{storage}/file-restore/list", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleFilerestoreList", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreList List files and directories for single file restore under the given path.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleFilerestoreList200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStorageSingleFilerestoreList200Response> GetNodesSingleStorageSingleFilerestoreListAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleFilerestoreList200Response> localVarResponse = await GetNodesSingleStorageSingleFilerestoreListWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleFilerestoreList List files and directories for single file restore under the given path.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleFilerestoreList200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleFilerestoreList200Response>> GetNodesSingleStorageSingleFilerestoreListWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleFilerestoreList");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleFilerestoreList");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleFilerestoreList";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStorageSingleFilerestoreList200Response>("/nodes/{node}/storage/{storage}/file-restore/list", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleFilerestoreList", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleImportmetadata Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleImportmetadata200Response</returns>
        public GetNodesSingleStorageSingleImportmetadata200Response GetNodesSingleStorageSingleImportmetadata(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleImportmetadata200Response> localVarResponse = GetNodesSingleStorageSingleImportmetadataWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleImportmetadata Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleImportmetadata200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleImportmetadata200Response> GetNodesSingleStorageSingleImportmetadataWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleImportmetadata");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleImportmetadata");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleImportmetadata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStorageSingleImportmetadata200Response>("/nodes/{node}/storage/{storage}/import-metadata", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleImportmetadata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleImportmetadata Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleImportmetadata200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStorageSingleImportmetadata200Response> GetNodesSingleStorageSingleImportmetadataAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleImportmetadata200Response> localVarResponse = await GetNodesSingleStorageSingleImportmetadataWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleImportmetadata Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleImportmetadata200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleImportmetadata200Response>> GetNodesSingleStorageSingleImportmetadataWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleImportmetadata");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleImportmetadata");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleImportmetadata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStorageSingleImportmetadata200Response>("/nodes/{node}/storage/{storage}/import-metadata", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleImportmetadata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSinglePrunebackups Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSinglePrunebackups200Response</returns>
        public GetNodesSingleStorageSinglePrunebackups200Response GetNodesSingleStorageSinglePrunebackups(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSinglePrunebackups200Response> localVarResponse = GetNodesSingleStorageSinglePrunebackupsWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSinglePrunebackups Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSinglePrunebackups200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSinglePrunebackups200Response> GetNodesSingleStorageSinglePrunebackupsWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSinglePrunebackups");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSinglePrunebackups");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSinglePrunebackups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStorageSinglePrunebackups200Response>("/nodes/{node}/storage/{storage}/prunebackups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSinglePrunebackups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSinglePrunebackups Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSinglePrunebackups200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStorageSinglePrunebackups200Response> GetNodesSingleStorageSinglePrunebackupsAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSinglePrunebackups200Response> localVarResponse = await GetNodesSingleStorageSinglePrunebackupsWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSinglePrunebackups Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSinglePrunebackups200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSinglePrunebackups200Response>> GetNodesSingleStorageSinglePrunebackupsWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSinglePrunebackups");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSinglePrunebackups");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSinglePrunebackups";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStorageSinglePrunebackups200Response>("/nodes/{node}/storage/{storage}/prunebackups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSinglePrunebackups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleRrd Read storage RRD statistics (returns PNG).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMRRD200Response</returns>
        public GetVMRRD200Response GetNodesSingleStorageSingleRrd(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> localVarResponse = GetNodesSingleStorageSingleRrdWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleRrd Read storage RRD statistics (returns PNG).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMRRD200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> GetNodesSingleStorageSingleRrdWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleRrd");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleRrd");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleRrd";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMRRD200Response>("/nodes/{node}/storage/{storage}/rrd", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleRrd", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleRrd Read storage RRD statistics (returns PNG).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMRRD200Response</returns>
        public async System.Threading.Tasks.Task<GetVMRRD200Response> GetNodesSingleStorageSingleRrdAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> localVarResponse = await GetNodesSingleStorageSingleRrdWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleRrd Read storage RRD statistics (returns PNG).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMRRD200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response>> GetNodesSingleStorageSingleRrdWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleRrd");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleRrd");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleRrd";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMRRD200Response>("/nodes/{node}/storage/{storage}/rrd", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleRrd", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleRrddata Read storage RRD statistics.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetNodesSingleStorageSingleRrddata(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetNodesSingleStorageSingleRrddataWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleRrddata Read storage RRD statistics.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetNodesSingleStorageSingleRrddataWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleRrddata");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleRrddata");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleRrddata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/storage/{storage}/rrddata", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleRrddata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleRrddata Read storage RRD statistics.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetNodesSingleStorageSingleRrddataAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetNodesSingleStorageSingleRrddataWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleRrddata Read storage RRD statistics.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetNodesSingleStorageSingleRrddataWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleRrddata");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleRrddata");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleRrddata";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/storage/{storage}/rrddata", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleRrddata", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleStatus Read storage status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleStorageSingleStatus200Response</returns>
        public GetNodesSingleStorageSingleStatus200Response GetNodesSingleStorageSingleStatus(string node, string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleStatus200Response> localVarResponse = GetNodesSingleStorageSingleStatusWithHttpInfo(node, storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleStatus Read storage status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleStorageSingleStatus200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleStatus200Response> GetNodesSingleStorageSingleStatusWithHttpInfo(string node, string storage, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleStatus");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleStorageSingleStatus200Response>("/nodes/{node}/storage/{storage}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleStorageSingleStatus Read storage status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleStorageSingleStatus200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleStorageSingleStatus200Response> GetNodesSingleStorageSingleStatusAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleStatus200Response> localVarResponse = await GetNodesSingleStorageSingleStatusWithHttpInfoAsync(node, storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleStorageSingleStatus Read storage status.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleStorageSingleStatus200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleStorageSingleStatus200Response>> GetNodesSingleStorageSingleStatusWithHttpInfoAsync(string node, string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleStatus");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetNodesSingleStorageSingleStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleStorageSingleStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleStorageSingleStatus200Response>("/nodes/{node}/storage/{storage}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleStorageSingleStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSubscription Read subscription info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleSubscription200Response</returns>
        public GetNodesSingleSubscription200Response GetNodesSingleSubscription(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSubscription200Response> localVarResponse = GetNodesSingleSubscriptionWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSubscription Read subscription info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleSubscription200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleSubscription200Response> GetNodesSingleSubscriptionWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSubscription");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSubscription";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleSubscription200Response>("/nodes/{node}/subscription", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSubscription", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSubscription Read subscription info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleSubscription200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleSubscription200Response> GetNodesSingleSubscriptionAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleSubscription200Response> localVarResponse = await GetNodesSingleSubscriptionWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSubscription Read subscription info.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleSubscription200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleSubscription200Response>> GetNodesSingleSubscriptionWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSubscription");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSubscription";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleSubscription200Response>("/nodes/{node}/subscription", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSubscription", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSyslog Read system log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public GetNodesSingleQemuSingleFirewallLog200Response GetNodesSingleSyslog(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = GetNodesSingleSyslogWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSyslog Read system log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleSyslogWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSyslog");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSyslog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/syslog", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSyslog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleSyslog Read system log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleFirewallLog200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleFirewallLog200Response> GetNodesSingleSyslogAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response> localVarResponse = await GetNodesSingleSyslogWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleSyslog Read system log
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleFirewallLog200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleFirewallLog200Response>> GetNodesSingleSyslogWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleSyslog");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleSyslog";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleFirewallLog200Response>("/nodes/{node}/syslog", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleSyslog", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleTime Read server time and time zone settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleTime200Response</returns>
        public GetNodesSingleTime200Response GetNodesSingleTime(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleTime200Response> localVarResponse = GetNodesSingleTimeWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleTime Read server time and time zone settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleTime200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleTime200Response> GetNodesSingleTimeWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleTime");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleTime";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleTime200Response>("/nodes/{node}/time", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleTime", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleTime Read server time and time zone settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleTime200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleTime200Response> GetNodesSingleTimeAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleTime200Response> localVarResponse = await GetNodesSingleTimeWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleTime Read server time and time zone settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleTime200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleTime200Response>> GetNodesSingleTimeWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleTime");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleTime";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleTime200Response>("/nodes/{node}/time", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleTime", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleVersion API version details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleVersion200Response</returns>
        public GetNodesSingleVersion200Response GetNodesSingleVersion(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleVersion200Response> localVarResponse = GetNodesSingleVersionWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleVersion API version details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleVersion200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleVersion200Response> GetNodesSingleVersionWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleVersion");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleVersion";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleVersion200Response>("/nodes/{node}/version", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleVersion", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleVersion API version details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleVersion200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleVersion200Response> GetNodesSingleVersionAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleVersion200Response> localVarResponse = await GetNodesSingleVersionWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleVersion API version details
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleVersion200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleVersion200Response>> GetNodesSingleVersionWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleVersion");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleVersion";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleVersion200Response>("/nodes/{node}/version", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleVersion", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public GetNodesSingleQemuSingleVncwebsocket200Response GetNodesSingleVncwebsocket(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> localVarResponse = GetNodesSingleVncwebsocketWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleVncwebsocketWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleVncwebsocket");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleVncwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleQemuSingleVncwebsocket200Response>("/nodes/{node}/vncwebsocket", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleVncwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleQemuSingleVncwebsocket200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleQemuSingleVncwebsocket200Response> GetNodesSingleVncwebsocketAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response> localVarResponse = await GetNodesSingleVncwebsocketWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleVncwebsocket Opens a websocket for VNC traffic.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleQemuSingleVncwebsocket200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleQemuSingleVncwebsocket200Response>> GetNodesSingleVncwebsocketWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleVncwebsocket");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleVncwebsocket";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleQemuSingleVncwebsocket200Response>("/nodes/{node}/vncwebsocket", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleVncwebsocket", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleVzdumpDefaults Get the currently configured vzdump defaults.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetNodesSingleVzdumpDefaults200Response</returns>
        public GetNodesSingleVzdumpDefaults200Response GetNodesSingleVzdumpDefaults(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleVzdumpDefaults200Response> localVarResponse = GetNodesSingleVzdumpDefaultsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleVzdumpDefaults Get the currently configured vzdump defaults.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetNodesSingleVzdumpDefaults200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetNodesSingleVzdumpDefaults200Response> GetNodesSingleVzdumpDefaultsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleVzdumpDefaults");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleVzdumpDefaults";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetNodesSingleVzdumpDefaults200Response>("/nodes/{node}/vzdump/defaults", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleVzdumpDefaults", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleVzdumpDefaults Get the currently configured vzdump defaults.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetNodesSingleVzdumpDefaults200Response</returns>
        public async System.Threading.Tasks.Task<GetNodesSingleVzdumpDefaults200Response> GetNodesSingleVzdumpDefaultsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetNodesSingleVzdumpDefaults200Response> localVarResponse = await GetNodesSingleVzdumpDefaultsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleVzdumpDefaults Get the currently configured vzdump defaults.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetNodesSingleVzdumpDefaults200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetNodesSingleVzdumpDefaults200Response>> GetNodesSingleVzdumpDefaultsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleVzdumpDefaults");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleVzdumpDefaults";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetNodesSingleVzdumpDefaults200Response>("/nodes/{node}/vzdump/defaults", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleVzdumpDefaults", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleVzdumpExtractconfig Extract configuration from vzdump backup archive.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response GetNodesSingleVzdumpExtractconfig(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = GetNodesSingleVzdumpExtractconfigWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleVzdumpExtractconfig Extract configuration from vzdump backup archive.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> GetNodesSingleVzdumpExtractconfigWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleVzdumpExtractconfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleVzdumpExtractconfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<CreateClusterReplication200Response>("/nodes/{node}/vzdump/extractconfig", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleVzdumpExtractconfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getNodesSingleVzdumpExtractconfig Extract configuration from vzdump backup archive.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> GetNodesSingleVzdumpExtractconfigAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await GetNodesSingleVzdumpExtractconfigWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getNodesSingleVzdumpExtractconfig Extract configuration from vzdump backup archive.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> GetNodesSingleVzdumpExtractconfigWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetNodesSingleVzdumpExtractconfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetNodesSingleVzdumpExtractconfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<CreateClusterReplication200Response>("/nodes/{node}/vzdump/extractconfig", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetNodesSingleVzdumpExtractconfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getPool Get pool configuration (deprecated, no support for nested pools, use &#39;GET /pools/?poolid&#x3D;{poolid}&#39;).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetPool200Response</returns>
        public GetPool200Response GetPool(string poolid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetPool200Response> localVarResponse = GetPoolWithHttpInfo(poolid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getPool Get pool configuration (deprecated, no support for nested pools, use &#39;GET /pools/?poolid&#x3D;{poolid}&#39;).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetPool200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetPool200Response> GetPoolWithHttpInfo(string poolid, int operationIndex = 0)
        {
            // verify the required parameter 'poolid' is set
            if (poolid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'poolid' when calling ProxmoxGeneratedApi->GetPool");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("poolid", ProxmoxSharp.Client.ClientUtils.ParameterToString(poolid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetPool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetPool200Response>("/pools/{poolid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getPool Get pool configuration (deprecated, no support for nested pools, use &#39;GET /pools/?poolid&#x3D;{poolid}&#39;).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetPool200Response</returns>
        public async System.Threading.Tasks.Task<GetPool200Response> GetPoolAsync(string poolid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetPool200Response> localVarResponse = await GetPoolWithHttpInfoAsync(poolid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getPool Get pool configuration (deprecated, no support for nested pools, use &#39;GET /pools/?poolid&#x3D;{poolid}&#39;).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetPool200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetPool200Response>> GetPoolWithHttpInfoAsync(string poolid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'poolid' is set
            if (poolid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'poolid' when calling ProxmoxGeneratedApi->GetPool");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("poolid", ProxmoxSharp.Client.ClientUtils.ParameterToString(poolid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetPool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetPool200Response>("/pools/{poolid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getPools List pools or get pool configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetPools200Response</returns>
        public GetPools200Response GetPools(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetPools200Response> localVarResponse = GetPoolsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getPools List pools or get pool configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetPools200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetPools200Response> GetPoolsWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetPools";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetPools200Response>("/pools", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPools", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getPools List pools or get pool configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetPools200Response</returns>
        public async System.Threading.Tasks.Task<GetPools200Response> GetPoolsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetPools200Response> localVarResponse = await GetPoolsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getPools List pools or get pool configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetPools200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetPools200Response>> GetPoolsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetPools";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetPools200Response>("/pools", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPools", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getStorage Storage index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetStorage200Response</returns>
        public GetStorage200Response GetStorage(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetStorage200Response> localVarResponse = GetStorageWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getStorage Storage index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetStorage200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetStorage200Response> GetStorageWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetStorage";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetStorage200Response>("/storage", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetStorage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getStorage Storage index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetStorage200Response</returns>
        public async System.Threading.Tasks.Task<GetStorage200Response> GetStorageAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetStorage200Response> localVarResponse = await GetStorageWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getStorage Storage index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetStorage200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetStorage200Response>> GetStorageWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetStorage";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetStorage200Response>("/storage", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetStorage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getStorageSingle Read storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetStorageSingle(string storage, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetStorageSingleWithHttpInfo(storage);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getStorageSingle Read storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetStorageSingleWithHttpInfo(string storage, int operationIndex = 0)
        {
            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetStorageSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetStorageSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/storage/{storage}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetStorageSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getStorageSingle Read storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetStorageSingleAsync(string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetStorageSingleWithHttpInfoAsync(storage, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getStorageSingle Read storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetStorageSingleWithHttpInfoAsync(string storage, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->GetStorageSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetStorageSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/storage/{storage}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetStorageSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVM Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetVM(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetVMWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVM Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetVMWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/qemu/{vmid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVM Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetVMAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetVMWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVM Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetVMWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/qemu/{vmid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMConfig Get the virtual machine configuration with pending configuration changes applied. Set the &#39;current&#39; parameter to get the current configuration instead.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMConfig200Response</returns>
        public GetVMConfig200Response GetVMConfig(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMConfig200Response> localVarResponse = GetVMConfigWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMConfig Get the virtual machine configuration with pending configuration changes applied. Set the &#39;current&#39; parameter to get the current configuration instead.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMConfig200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMConfig200Response> GetVMConfigWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMConfig200Response>("/nodes/{node}/qemu/{vmid}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMConfig Get the virtual machine configuration with pending configuration changes applied. Set the &#39;current&#39; parameter to get the current configuration instead.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMConfig200Response</returns>
        public async System.Threading.Tasks.Task<GetVMConfig200Response> GetVMConfigAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMConfig200Response> localVarResponse = await GetVMConfigWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMConfig Get the virtual machine configuration with pending configuration changes applied. Set the &#39;current&#39; parameter to get the current configuration instead.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMConfig200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMConfig200Response>> GetVMConfigWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMConfig200Response>("/nodes/{node}/qemu/{vmid}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMConfigPending Get the virtual machine configuration with both current and pending values.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMConfigPending200Response</returns>
        public GetVMConfigPending200Response GetVMConfigPending(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMConfigPending200Response> localVarResponse = GetVMConfigPendingWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMConfigPending Get the virtual machine configuration with both current and pending values.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMConfigPending200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMConfigPending200Response> GetVMConfigPendingWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMConfigPending");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMConfigPending";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMConfigPending200Response>("/nodes/{node}/qemu/{vmid}/pending", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMConfigPending", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMConfigPending Get the virtual machine configuration with both current and pending values.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMConfigPending200Response</returns>
        public async System.Threading.Tasks.Task<GetVMConfigPending200Response> GetVMConfigPendingAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMConfigPending200Response> localVarResponse = await GetVMConfigPendingWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMConfigPending Get the virtual machine configuration with both current and pending values.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMConfigPending200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMConfigPending200Response>> GetVMConfigPendingWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMConfigPending");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMConfigPending";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMConfigPending200Response>("/nodes/{node}/qemu/{vmid}/pending", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMConfigPending", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetVMFirewall(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetVMFirewallWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetVMFirewallWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewall");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/qemu/{vmid}/firewall", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetVMFirewallAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetVMFirewallWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewall Directory index.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetVMFirewallWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewall");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewall";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/qemu/{vmid}/firewall", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewall", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallIPSet List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSet200Response</returns>
        public GetClusterFirewallIPSet200Response GetVMFirewallIPSet(string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> localVarResponse = GetVMFirewallIPSetWithHttpInfo(name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallIPSet List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSet200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> GetVMFirewallIPSetWithHttpInfo(string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetVMFirewallIPSet");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallIPSet");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallIPSet200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallIPSet List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSet200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallIPSet200Response> GetVMFirewallIPSetAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response> localVarResponse = await GetVMFirewallIPSetWithHttpInfoAsync(name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallIPSet List IPSet content
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSet200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSet200Response>> GetVMFirewallIPSetWithHttpInfoAsync(string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetVMFirewallIPSet");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallIPSet");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallIPSet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallIPSet200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallIPSet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallIPSetIP Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetVMFirewallIPSetIP(string cidr, string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetVMFirewallIPSetIPWithHttpInfo(cidr, name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallIPSetIP Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetVMFirewallIPSetIPWithHttpInfo(string cidr, string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->GetVMFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetVMFirewallIPSetIP");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallIPSetIP");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallIPSetIP Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetVMFirewallIPSetIPAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetVMFirewallIPSetIPWithHttpInfoAsync(cidr, name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallIPSetIP Read IP or Network settings from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetVMFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->GetVMFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->GetVMFirewallIPSetIP");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallIPSetIP");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallIPSets List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallIPSets200Response</returns>
        public GetClusterFirewallIPSets200Response GetVMFirewallIPSets(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> localVarResponse = GetVMFirewallIPSetsWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallIPSets List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallIPSets200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> GetVMFirewallIPSetsWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallIPSets");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallIPSets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallIPSets200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallIPSets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallIPSets List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallIPSets200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallIPSets200Response> GetVMFirewallIPSetsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response> localVarResponse = await GetVMFirewallIPSetsWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallIPSets List IPSets
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallIPSets200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallIPSets200Response>> GetVMFirewallIPSetsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallIPSets");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallIPSets";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallIPSets200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallIPSets", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallOptions Get VM firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMFirewallOptions200Response</returns>
        public GetVMFirewallOptions200Response GetVMFirewallOptions(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMFirewallOptions200Response> localVarResponse = GetVMFirewallOptionsWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallOptions Get VM firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMFirewallOptions200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMFirewallOptions200Response> GetVMFirewallOptionsWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallOptions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMFirewallOptions200Response>("/nodes/{node}/qemu/{vmid}/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallOptions Get VM firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMFirewallOptions200Response</returns>
        public async System.Threading.Tasks.Task<GetVMFirewallOptions200Response> GetVMFirewallOptionsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMFirewallOptions200Response> localVarResponse = await GetVMFirewallOptionsWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallOptions Get VM firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMFirewallOptions200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMFirewallOptions200Response>> GetVMFirewallOptionsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallOptions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMFirewallOptions200Response>("/nodes/{node}/qemu/{vmid}/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRule200Response</returns>
        public GetClusterFirewallGroupRule200Response GetVMFirewallRule(string node, int pos, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = GetVMFirewallRuleWithHttpInfo(node, pos, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRule200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> GetVMFirewallRuleWithHttpInfo(string node, int pos, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRule200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRule200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRule200Response> GetVMFirewallRuleAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response> localVarResponse = await GetVMFirewallRuleWithHttpInfoAsync(node, pos, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallRule Get single rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRule200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRule200Response>> GetVMFirewallRuleWithHttpInfoAsync(string node, int pos, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRule200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterFirewallGroupRules200Response</returns>
        public GetClusterFirewallGroupRules200Response GetVMFirewallRules(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = GetVMFirewallRulesWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterFirewallGroupRules200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> GetVMFirewallRulesWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallRules");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterFirewallGroupRules200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterFirewallGroupRules200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterFirewallGroupRules200Response> GetVMFirewallRulesAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response> localVarResponse = await GetVMFirewallRulesWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMFirewallRules List rules.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterFirewallGroupRules200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterFirewallGroupRules200Response>> GetVMFirewallRulesWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMFirewallRules");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMFirewallRules";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterFirewallGroupRules200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMFirewallRules", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMRRD Read VM RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMRRD200Response</returns>
        public GetVMRRD200Response GetVMRRD(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> localVarResponse = GetVMRRDWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMRRD Read VM RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMRRD200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> GetVMRRDWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMRRD");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMRRD";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMRRD200Response>("/nodes/{node}/qemu/{vmid}/rrd", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMRRD", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMRRD Read VM RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMRRD200Response</returns>
        public async System.Threading.Tasks.Task<GetVMRRD200Response> GetVMRRDAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response> localVarResponse = await GetVMRRDWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMRRD Read VM RRD statistics (returns PNG)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMRRD200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMRRD200Response>> GetVMRRDWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMRRD");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMRRD";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMRRD200Response>("/nodes/{node}/qemu/{vmid}/rrd", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMRRD", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMRRDData Read VM RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetVMRRDData(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetVMRRDDataWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMRRDData Read VM RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetVMRRDDataWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMRRDData");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMRRDData";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/qemu/{vmid}/rrddata", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMRRDData", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMRRDData Read VM RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetVMRRDDataAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetVMRRDDataWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMRRDData Read VM RRD statistics
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetVMRRDDataWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMRRDData");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMRRDData";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/qemu/{vmid}/rrddata", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMRRDData", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMSnapshot getVMSnapshot
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetCluster200Response</returns>
        public GetCluster200Response GetVMSnapshot(string node, string snapname, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = GetVMSnapshotWithHttpInfo(node, snapname, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMSnapshot getVMSnapshot
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetCluster200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetCluster200Response> GetVMSnapshotWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMSnapshot");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->GetVMSnapshot");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetCluster200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMSnapshot getVMSnapshot
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetCluster200Response</returns>
        public async System.Threading.Tasks.Task<GetCluster200Response> GetVMSnapshotAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetCluster200Response> localVarResponse = await GetVMSnapshotWithHttpInfoAsync(node, snapname, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMSnapshot getVMSnapshot
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetCluster200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetCluster200Response>> GetVMSnapshotWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMSnapshot");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->GetVMSnapshot");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetCluster200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMSnapshotConfig Get snapshot configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterMetricsServerSingle200Response</returns>
        public GetClusterMetricsServerSingle200Response GetVMSnapshotConfig(string node, string snapname, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = GetVMSnapshotConfigWithHttpInfo(node, snapname, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMSnapshotConfig Get snapshot configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterMetricsServerSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> GetVMSnapshotConfigWithHttpInfo(string node, string snapname, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMSnapshotConfig");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->GetVMSnapshotConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMSnapshotConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterMetricsServerSingle200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMSnapshotConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMSnapshotConfig Get snapshot configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterMetricsServerSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterMetricsServerSingle200Response> GetVMSnapshotConfigAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response> localVarResponse = await GetVMSnapshotConfigWithHttpInfoAsync(node, snapname, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMSnapshotConfig Get snapshot configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterMetricsServerSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterMetricsServerSingle200Response>> GetVMSnapshotConfigWithHttpInfoAsync(string node, string snapname, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMSnapshotConfig");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->GetVMSnapshotConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMSnapshotConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterMetricsServerSingle200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMSnapshotConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMSnapshots List all snapshots.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMSnapshots200Response</returns>
        public GetVMSnapshots200Response GetVMSnapshots(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMSnapshots200Response> localVarResponse = GetVMSnapshotsWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMSnapshots List all snapshots.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMSnapshots200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMSnapshots200Response> GetVMSnapshotsWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMSnapshots");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMSnapshots";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMSnapshots200Response>("/nodes/{node}/qemu/{vmid}/snapshot", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMSnapshots", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMSnapshots List all snapshots.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMSnapshots200Response</returns>
        public async System.Threading.Tasks.Task<GetVMSnapshots200Response> GetVMSnapshotsAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMSnapshots200Response> localVarResponse = await GetVMSnapshotsWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMSnapshots List all snapshots.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMSnapshots200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMSnapshots200Response>> GetVMSnapshotsWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMSnapshots");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMSnapshots";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMSnapshots200Response>("/nodes/{node}/qemu/{vmid}/snapshot", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMSnapshots", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMStatus Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterSdnFabrics200Response</returns>
        public GetClusterSdnFabrics200Response GetVMStatus(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = GetVMStatusWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMStatus Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterSdnFabrics200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> GetVMStatusWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMStatus");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetClusterSdnFabrics200Response>("/nodes/{node}/qemu/{vmid}/status", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMStatus Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterSdnFabrics200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterSdnFabrics200Response> GetVMStatusAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response> localVarResponse = await GetVMStatusWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMStatus Directory index
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterSdnFabrics200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterSdnFabrics200Response>> GetVMStatusWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMStatus");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMStatus";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetClusterSdnFabrics200Response>("/nodes/{node}/qemu/{vmid}/status", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMStatus", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMs Virtual machine index (per node).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVMs200Response</returns>
        public GetVMs200Response GetVMs(string node, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVMs200Response> localVarResponse = GetVMsWithHttpInfo(node);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMs Virtual machine index (per node).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVMs200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVMs200Response> GetVMsWithHttpInfo(string node, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMs");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVMs200Response>("/nodes/{node}/qemu", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVMs Virtual machine index (per node).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVMs200Response</returns>
        public async System.Threading.Tasks.Task<GetVMs200Response> GetVMsAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVMs200Response> localVarResponse = await GetVMsWithHttpInfoAsync(node, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVMs Virtual machine index (per node).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVMs200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVMs200Response>> GetVMsWithHttpInfoAsync(string node, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->GetVMs");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVMs";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVMs200Response>("/nodes/{node}/qemu", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVMs", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVersion API version details, including some parts of the global datacenter config.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetVersion200Response</returns>
        public GetVersion200Response GetVersion(int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetVersion200Response> localVarResponse = GetVersionWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVersion API version details, including some parts of the global datacenter config.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetVersion200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetVersion200Response> GetVersionWithHttpInfo(int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVersion";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<GetVersion200Response>("/version", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVersion", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// getVersion API version details, including some parts of the global datacenter config.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetVersion200Response</returns>
        public async System.Threading.Tasks.Task<GetVersion200Response> GetVersionAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetVersion200Response> localVarResponse = await GetVersionWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// getVersion API version details, including some parts of the global datacenter config.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetVersion200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetVersion200Response>> GetVersionWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.GetVersion";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GetVersion200Response>("/version", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetVersion", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// migrateVM Get preconditions for migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>MigrateVM200Response</returns>
        public MigrateVM200Response MigrateVM(string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<MigrateVM200Response> localVarResponse = MigrateVMWithHttpInfo(node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// migrateVM Get preconditions for migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of MigrateVM200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<MigrateVM200Response> MigrateVMWithHttpInfo(string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->MigrateVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.MigrateVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Get<MigrateVM200Response>("/nodes/{node}/qemu/{vmid}/migrate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("MigrateVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// migrateVM Get preconditions for migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of MigrateVM200Response</returns>
        public async System.Threading.Tasks.Task<MigrateVM200Response> MigrateVMAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<MigrateVM200Response> localVarResponse = await MigrateVMWithHttpInfoAsync(node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// migrateVM Get preconditions for migration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (MigrateVM200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<MigrateVM200Response>> MigrateVMWithHttpInfoAsync(string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->MigrateVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.MigrateVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<MigrateVM200Response>("/nodes/{node}/qemu/{vmid}/migrate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("MigrateVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// rebootVM Reboot the VM by shutting it down, and starting it again. Applies pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rebootVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response RebootVM(string node, int vmid, RebootVMRequest rebootVMRequest = default(RebootVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = RebootVMWithHttpInfo(node, vmid, rebootVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// rebootVM Reboot the VM by shutting it down, and starting it again. Applies pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rebootVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> RebootVMWithHttpInfo(string node, int vmid, RebootVMRequest rebootVMRequest = default(RebootVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->RebootVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = rebootVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RebootVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/reboot", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RebootVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// rebootVM Reboot the VM by shutting it down, and starting it again. Applies pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rebootVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> RebootVMAsync(string node, int vmid, RebootVMRequest rebootVMRequest = default(RebootVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await RebootVMWithHttpInfoAsync(node, vmid, rebootVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// rebootVM Reboot the VM by shutting it down, and starting it again. Applies pending changes.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rebootVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> RebootVMWithHttpInfoAsync(string node, int vmid, RebootVMRequest rebootVMRequest = default(RebootVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->RebootVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = rebootVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RebootVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/reboot", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RebootVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// removeClusterFirewallGroupRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response RemoveClusterFirewallGroupRule(string group, int pos, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = RemoveClusterFirewallGroupRuleWithHttpInfo(group, pos);
            return localVarResponse.Data;
        }

        /// <summary>
        /// removeClusterFirewallGroupRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> RemoveClusterFirewallGroupRuleWithHttpInfo(string group, int pos, int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->RemoveClusterFirewallGroupRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RemoveClusterFirewallGroupRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/firewall/groups/{group}/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RemoveClusterFirewallGroupRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// removeClusterFirewallGroupRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> RemoveClusterFirewallGroupRuleAsync(string group, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await RemoveClusterFirewallGroupRuleWithHttpInfoAsync(group, pos, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// removeClusterFirewallGroupRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> RemoveClusterFirewallGroupRuleWithHttpInfoAsync(string group, int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->RemoveClusterFirewallGroupRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RemoveClusterFirewallGroupRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/firewall/groups/{group}/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RemoveClusterFirewallGroupRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// removeClusterFirewallIPSetIP Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response RemoveClusterFirewallIPSetIP(string cidr, string name, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = RemoveClusterFirewallIPSetIPWithHttpInfo(cidr, name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// removeClusterFirewallIPSetIP Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> RemoveClusterFirewallIPSetIPWithHttpInfo(string cidr, string name, int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->RemoveClusterFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->RemoveClusterFirewallIPSetIP");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RemoveClusterFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RemoveClusterFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// removeClusterFirewallIPSetIP Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> RemoveClusterFirewallIPSetIPAsync(string cidr, string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await RemoveClusterFirewallIPSetIPWithHttpInfoAsync(cidr, name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// removeClusterFirewallIPSetIP Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> RemoveClusterFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->RemoveClusterFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->RemoveClusterFirewallIPSetIP");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RemoveClusterFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RemoveClusterFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// removeClusterFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response RemoveClusterFirewallRule(int pos, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = RemoveClusterFirewallRuleWithHttpInfo(pos);
            return localVarResponse.Data;
        }

        /// <summary>
        /// removeClusterFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> RemoveClusterFirewallRuleWithHttpInfo(int pos, int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RemoveClusterFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/cluster/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RemoveClusterFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// removeClusterFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> RemoveClusterFirewallRuleAsync(int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await RemoveClusterFirewallRuleWithHttpInfoAsync(pos, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// removeClusterFirewallRule Delete rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> RemoveClusterFirewallRuleWithHttpInfoAsync(int pos, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RemoveClusterFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/cluster/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RemoveClusterFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// removeVMFirewallIPSetIP Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response RemoveVMFirewallIPSetIP(string cidr, string name, string node, int vmid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = RemoveVMFirewallIPSetIPWithHttpInfo(cidr, name, node, vmid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// removeVMFirewallIPSetIP Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> RemoveVMFirewallIPSetIPWithHttpInfo(string cidr, string name, string node, int vmid, int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->RemoveVMFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->RemoveVMFirewallIPSetIP");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->RemoveVMFirewallIPSetIP");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RemoveVMFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RemoveVMFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// removeVMFirewallIPSetIP Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> RemoveVMFirewallIPSetIPAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await RemoveVMFirewallIPSetIPWithHttpInfoAsync(cidr, name, node, vmid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// removeVMFirewallIPSetIP Remove IP or Network from IPSet.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> RemoveVMFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, string node, int vmid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->RemoveVMFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->RemoveVMFirewallIPSetIP");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->RemoveVMFirewallIPSetIP");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RemoveVMFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RemoveVMFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// resetVM Reset virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resetVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response ResetVM(string node, int vmid, ResetVMRequest resetVMRequest = default(ResetVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = ResetVMWithHttpInfo(node, vmid, resetVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// resetVM Reset virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resetVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> ResetVMWithHttpInfo(string node, int vmid, ResetVMRequest resetVMRequest = default(ResetVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->ResetVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = resetVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.ResetVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/reset", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ResetVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// resetVM Reset virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resetVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> ResetVMAsync(string node, int vmid, ResetVMRequest resetVMRequest = default(ResetVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await ResetVMWithHttpInfoAsync(node, vmid, resetVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// resetVM Reset virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resetVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> ResetVMWithHttpInfoAsync(string node, int vmid, ResetVMRequest resetVMRequest = default(ResetVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->ResetVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = resetVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.ResetVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/reset", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ResetVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// resizeVMDisk Extend volume size.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resizeVMDiskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response ResizeVMDisk(string node, int vmid, ResizeVMDiskRequest resizeVMDiskRequest = default(ResizeVMDiskRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = ResizeVMDiskWithHttpInfo(node, vmid, resizeVMDiskRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// resizeVMDisk Extend volume size.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resizeVMDiskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> ResizeVMDiskWithHttpInfo(string node, int vmid, ResizeVMDiskRequest resizeVMDiskRequest = default(ResizeVMDiskRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->ResizeVMDisk");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = resizeVMDiskRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.ResizeVMDisk";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/resize", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ResizeVMDisk", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// resizeVMDisk Extend volume size.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resizeVMDiskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> ResizeVMDiskAsync(string node, int vmid, ResizeVMDiskRequest resizeVMDiskRequest = default(ResizeVMDiskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await ResizeVMDiskWithHttpInfoAsync(node, vmid, resizeVMDiskRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// resizeVMDisk Extend volume size.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resizeVMDiskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> ResizeVMDiskWithHttpInfoAsync(string node, int vmid, ResizeVMDiskRequest resizeVMDiskRequest = default(ResizeVMDiskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->ResizeVMDisk");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = resizeVMDiskRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.ResizeVMDisk";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/resize", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ResizeVMDisk", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// resumeVM Resume virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resumeVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response ResumeVM(string node, int vmid, ResumeVMRequest resumeVMRequest = default(ResumeVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = ResumeVMWithHttpInfo(node, vmid, resumeVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// resumeVM Resume virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resumeVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> ResumeVMWithHttpInfo(string node, int vmid, ResumeVMRequest resumeVMRequest = default(ResumeVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->ResumeVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = resumeVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.ResumeVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/resume", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ResumeVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// resumeVM Resume virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resumeVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> ResumeVMAsync(string node, int vmid, ResumeVMRequest resumeVMRequest = default(ResumeVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await ResumeVMWithHttpInfoAsync(node, vmid, resumeVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// resumeVM Resume virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="resumeVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> ResumeVMWithHttpInfoAsync(string node, int vmid, ResumeVMRequest resumeVMRequest = default(ResumeVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->ResumeVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = resumeVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.ResumeVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/resume", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ResumeVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// rollbackVMSnapshot Rollback VM state to specified snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rollbackVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response RollbackVMSnapshot(string node, string snapname, int vmid, RollbackVMSnapshotRequest rollbackVMSnapshotRequest = default(RollbackVMSnapshotRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = RollbackVMSnapshotWithHttpInfo(node, snapname, vmid, rollbackVMSnapshotRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// rollbackVMSnapshot Rollback VM state to specified snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rollbackVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> RollbackVMSnapshotWithHttpInfo(string node, string snapname, int vmid, RollbackVMSnapshotRequest rollbackVMSnapshotRequest = default(RollbackVMSnapshotRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->RollbackVMSnapshot");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->RollbackVMSnapshot");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = rollbackVMSnapshotRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RollbackVMSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RollbackVMSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// rollbackVMSnapshot Rollback VM state to specified snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rollbackVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> RollbackVMSnapshotAsync(string node, string snapname, int vmid, RollbackVMSnapshotRequest rollbackVMSnapshotRequest = default(RollbackVMSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await RollbackVMSnapshotWithHttpInfoAsync(node, snapname, vmid, rollbackVMSnapshotRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// rollbackVMSnapshot Rollback VM state to specified snapshot.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="rollbackVMSnapshotRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> RollbackVMSnapshotWithHttpInfoAsync(string node, string snapname, int vmid, RollbackVMSnapshotRequest rollbackVMSnapshotRequest = default(RollbackVMSnapshotRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->RollbackVMSnapshot");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->RollbackVMSnapshot");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = rollbackVMSnapshotRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.RollbackVMSnapshot";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RollbackVMSnapshot", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// shutdownVM Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="shutdownVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response ShutdownVM(string node, int vmid, ShutdownVMRequest shutdownVMRequest = default(ShutdownVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = ShutdownVMWithHttpInfo(node, vmid, shutdownVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// shutdownVM Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="shutdownVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> ShutdownVMWithHttpInfo(string node, int vmid, ShutdownVMRequest shutdownVMRequest = default(ShutdownVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->ShutdownVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = shutdownVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.ShutdownVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/shutdown", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ShutdownVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// shutdownVM Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="shutdownVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> ShutdownVMAsync(string node, int vmid, ShutdownVMRequest shutdownVMRequest = default(ShutdownVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await ShutdownVMWithHttpInfoAsync(node, vmid, shutdownVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// shutdownVM Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="shutdownVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> ShutdownVMWithHttpInfoAsync(string node, int vmid, ShutdownVMRequest shutdownVMRequest = default(ShutdownVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->ShutdownVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = shutdownVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.ShutdownVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/shutdown", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ShutdownVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// startVM Start virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="startVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response StartVM(string node, int vmid, StartVMRequest startVMRequest = default(StartVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = StartVMWithHttpInfo(node, vmid, startVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// startVM Start virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="startVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> StartVMWithHttpInfo(string node, int vmid, StartVMRequest startVMRequest = default(StartVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->StartVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = startVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.StartVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/start", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("StartVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// startVM Start virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="startVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> StartVMAsync(string node, int vmid, StartVMRequest startVMRequest = default(StartVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await StartVMWithHttpInfoAsync(node, vmid, startVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// startVM Start virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="startVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> StartVMWithHttpInfoAsync(string node, int vmid, StartVMRequest startVMRequest = default(StartVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->StartVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = startVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.StartVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/start", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("StartVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// stopNodeTask Stop a task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response StopNodeTask(string node, string upid, int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = StopNodeTaskWithHttpInfo(node, upid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// stopNodeTask Stop a task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> StopNodeTaskWithHttpInfo(string node, string upid, int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->StopNodeTask");
            }

            // verify the required parameter 'upid' is set
            if (upid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'upid' when calling ProxmoxGeneratedApi->StopNodeTask");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("upid", ProxmoxSharp.Client.ClientUtils.ParameterToString(upid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.StopNodeTask";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Delete<CreateClusterReplication200Response>("/nodes/{node}/tasks/{upid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("StopNodeTask", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// stopNodeTask Stop a task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> StopNodeTaskAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await StopNodeTaskWithHttpInfoAsync(node, upid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// stopNodeTask Stop a task.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="upid">upid</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> StopNodeTaskWithHttpInfoAsync(string node, string upid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->StopNodeTask");
            }

            // verify the required parameter 'upid' is set
            if (upid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'upid' when calling ProxmoxGeneratedApi->StopNodeTask");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("upid", ProxmoxSharp.Client.ClientUtils.ParameterToString(upid)); // path parameter

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.StopNodeTask";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<CreateClusterReplication200Response>("/nodes/{node}/tasks/{upid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("StopNodeTask", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// stopVM Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="stopVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response StopVM(string node, int vmid, StopVMRequest stopVMRequest = default(StopVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = StopVMWithHttpInfo(node, vmid, stopVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// stopVM Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="stopVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> StopVMWithHttpInfo(string node, int vmid, StopVMRequest stopVMRequest = default(StopVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->StopVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = stopVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.StopVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/stop", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("StopVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// stopVM Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="stopVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> StopVMAsync(string node, int vmid, StopVMRequest stopVMRequest = default(StopVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await StopVMWithHttpInfoAsync(node, vmid, stopVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// stopVM Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="stopVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> StopVMWithHttpInfoAsync(string node, int vmid, StopVMRequest stopVMRequest = default(StopVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->StopVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = stopVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.StopVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/stop", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("StopVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// suspendVM Suspend virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="suspendVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response SuspendVM(string node, int vmid, SuspendVMRequest suspendVMRequest = default(SuspendVMRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = SuspendVMWithHttpInfo(node, vmid, suspendVMRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// suspendVM Suspend virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="suspendVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> SuspendVMWithHttpInfo(string node, int vmid, SuspendVMRequest suspendVMRequest = default(SuspendVMRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->SuspendVM");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = suspendVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.SuspendVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/suspend", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("SuspendVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// suspendVM Suspend virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="suspendVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> SuspendVMAsync(string node, int vmid, SuspendVMRequest suspendVMRequest = default(SuspendVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await SuspendVMWithHttpInfoAsync(node, vmid, suspendVMRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// suspendVM Suspend virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="suspendVMRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> SuspendVMWithHttpInfoAsync(string node, int vmid, SuspendVMRequest suspendVMRequest = default(SuspendVMRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->SuspendVM");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = suspendVMRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.SuspendVM";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/status/suspend", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("SuspendVM", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// unlinkVMDiskImages Unlink/delete disk images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="unlinkVMDiskImagesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UnlinkVMDiskImages(string node, int vmid, UnlinkVMDiskImagesRequest unlinkVMDiskImagesRequest = default(UnlinkVMDiskImagesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UnlinkVMDiskImagesWithHttpInfo(node, vmid, unlinkVMDiskImagesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// unlinkVMDiskImages Unlink/delete disk images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="unlinkVMDiskImagesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UnlinkVMDiskImagesWithHttpInfo(string node, int vmid, UnlinkVMDiskImagesRequest unlinkVMDiskImagesRequest = default(UnlinkVMDiskImagesRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UnlinkVMDiskImages");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = unlinkVMDiskImagesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UnlinkVMDiskImages";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/unlink", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UnlinkVMDiskImages", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// unlinkVMDiskImages Unlink/delete disk images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="unlinkVMDiskImagesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UnlinkVMDiskImagesAsync(string node, int vmid, UnlinkVMDiskImagesRequest unlinkVMDiskImagesRequest = default(UnlinkVMDiskImagesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UnlinkVMDiskImagesWithHttpInfoAsync(node, vmid, unlinkVMDiskImagesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// unlinkVMDiskImages Unlink/delete disk images.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="unlinkVMDiskImagesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UnlinkVMDiskImagesWithHttpInfoAsync(string node, int vmid, UnlinkVMDiskImagesRequest unlinkVMDiskImagesRequest = default(UnlinkVMDiskImagesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UnlinkVMDiskImages");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = unlinkVMDiskImagesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UnlinkVMDiskImages";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/unlink", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UnlinkVMDiskImages", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessAcl Update Access Control List (add or remove permissions).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessAclRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateAccessAcl(UpdateAccessAclRequest updateAccessAclRequest = default(UpdateAccessAclRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateAccessAclWithHttpInfo(updateAccessAclRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessAcl Update Access Control List (add or remove permissions).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessAclRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateAccessAclWithHttpInfo(UpdateAccessAclRequest updateAccessAclRequest = default(UpdateAccessAclRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateAccessAclRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessAcl";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/access/acl", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessAcl", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessAcl Update Access Control List (add or remove permissions).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessAclRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessAclAsync(UpdateAccessAclRequest updateAccessAclRequest = default(UpdateAccessAclRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateAccessAclWithHttpInfoAsync(updateAccessAclRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessAcl Update Access Control List (add or remove permissions).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessAclRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateAccessAclWithHttpInfoAsync(UpdateAccessAclRequest updateAccessAclRequest = default(UpdateAccessAclRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateAccessAclRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessAcl";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/access/acl", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessAcl", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessDomainsSingle Update authentication server settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="updateAccessDomainsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateAccessDomainsSingle(string realm, UpdateAccessDomainsSingleRequest updateAccessDomainsSingleRequest = default(UpdateAccessDomainsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateAccessDomainsSingleWithHttpInfo(realm, updateAccessDomainsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessDomainsSingle Update authentication server settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="updateAccessDomainsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateAccessDomainsSingleWithHttpInfo(string realm, UpdateAccessDomainsSingleRequest updateAccessDomainsSingleRequest = default(UpdateAccessDomainsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'realm' is set
            if (realm == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'realm' when calling ProxmoxGeneratedApi->UpdateAccessDomainsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("realm", ProxmoxSharp.Client.ClientUtils.ParameterToString(realm)); // path parameter
            localVarRequestOptions.Data = updateAccessDomainsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessDomainsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/access/domains/{realm}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessDomainsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessDomainsSingle Update authentication server settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="updateAccessDomainsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessDomainsSingleAsync(string realm, UpdateAccessDomainsSingleRequest updateAccessDomainsSingleRequest = default(UpdateAccessDomainsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateAccessDomainsSingleWithHttpInfoAsync(realm, updateAccessDomainsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessDomainsSingle Update authentication server settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="realm">realm</param>
        /// <param name="updateAccessDomainsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateAccessDomainsSingleWithHttpInfoAsync(string realm, UpdateAccessDomainsSingleRequest updateAccessDomainsSingleRequest = default(UpdateAccessDomainsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'realm' is set
            if (realm == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'realm' when calling ProxmoxGeneratedApi->UpdateAccessDomainsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("realm", ProxmoxSharp.Client.ClientUtils.ParameterToString(realm)); // path parameter
            localVarRequestOptions.Data = updateAccessDomainsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessDomainsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/access/domains/{realm}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessDomainsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessGroupsSingle Update group data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="updateAccessGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateAccessGroupsSingle(string groupid, UpdateAccessGroupsSingleRequest updateAccessGroupsSingleRequest = default(UpdateAccessGroupsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateAccessGroupsSingleWithHttpInfo(groupid, updateAccessGroupsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessGroupsSingle Update group data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="updateAccessGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateAccessGroupsSingleWithHttpInfo(string groupid, UpdateAccessGroupsSingleRequest updateAccessGroupsSingleRequest = default(UpdateAccessGroupsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'groupid' is set
            if (groupid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'groupid' when calling ProxmoxGeneratedApi->UpdateAccessGroupsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("groupid", ProxmoxSharp.Client.ClientUtils.ParameterToString(groupid)); // path parameter
            localVarRequestOptions.Data = updateAccessGroupsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/access/groups/{groupid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessGroupsSingle Update group data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="updateAccessGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessGroupsSingleAsync(string groupid, UpdateAccessGroupsSingleRequest updateAccessGroupsSingleRequest = default(UpdateAccessGroupsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateAccessGroupsSingleWithHttpInfoAsync(groupid, updateAccessGroupsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessGroupsSingle Update group data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="groupid">groupid</param>
        /// <param name="updateAccessGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateAccessGroupsSingleWithHttpInfoAsync(string groupid, UpdateAccessGroupsSingleRequest updateAccessGroupsSingleRequest = default(UpdateAccessGroupsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'groupid' is set
            if (groupid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'groupid' when calling ProxmoxGeneratedApi->UpdateAccessGroupsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("groupid", ProxmoxSharp.Client.ClientUtils.ParameterToString(groupid)); // path parameter
            localVarRequestOptions.Data = updateAccessGroupsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/access/groups/{groupid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessPassword Change user password.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessPasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateAccessPassword(UpdateAccessPasswordRequest updateAccessPasswordRequest = default(UpdateAccessPasswordRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateAccessPasswordWithHttpInfo(updateAccessPasswordRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessPassword Change user password.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessPasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateAccessPasswordWithHttpInfo(UpdateAccessPasswordRequest updateAccessPasswordRequest = default(UpdateAccessPasswordRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateAccessPasswordRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessPassword";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/access/password", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessPassword", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessPassword Change user password.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessPasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessPasswordAsync(UpdateAccessPasswordRequest updateAccessPasswordRequest = default(UpdateAccessPasswordRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateAccessPasswordWithHttpInfoAsync(updateAccessPasswordRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessPassword Change user password.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateAccessPasswordRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateAccessPasswordWithHttpInfoAsync(UpdateAccessPasswordRequest updateAccessPasswordRequest = default(UpdateAccessPasswordRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateAccessPasswordRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessPassword";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/access/password", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessPassword", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessRolesSingle Update an existing role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="updateAccessRolesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateAccessRolesSingle(string roleid, UpdateAccessRolesSingleRequest updateAccessRolesSingleRequest = default(UpdateAccessRolesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateAccessRolesSingleWithHttpInfo(roleid, updateAccessRolesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessRolesSingle Update an existing role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="updateAccessRolesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateAccessRolesSingleWithHttpInfo(string roleid, UpdateAccessRolesSingleRequest updateAccessRolesSingleRequest = default(UpdateAccessRolesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'roleid' is set
            if (roleid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'roleid' when calling ProxmoxGeneratedApi->UpdateAccessRolesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("roleid", ProxmoxSharp.Client.ClientUtils.ParameterToString(roleid)); // path parameter
            localVarRequestOptions.Data = updateAccessRolesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessRolesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/access/roles/{roleid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessRolesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessRolesSingle Update an existing role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="updateAccessRolesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessRolesSingleAsync(string roleid, UpdateAccessRolesSingleRequest updateAccessRolesSingleRequest = default(UpdateAccessRolesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateAccessRolesSingleWithHttpInfoAsync(roleid, updateAccessRolesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessRolesSingle Update an existing role.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="roleid">roleid</param>
        /// <param name="updateAccessRolesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateAccessRolesSingleWithHttpInfoAsync(string roleid, UpdateAccessRolesSingleRequest updateAccessRolesSingleRequest = default(UpdateAccessRolesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'roleid' is set
            if (roleid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'roleid' when calling ProxmoxGeneratedApi->UpdateAccessRolesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("roleid", ProxmoxSharp.Client.ClientUtils.ParameterToString(roleid)); // path parameter
            localVarRequestOptions.Data = updateAccessRolesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessRolesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/access/roles/{roleid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessRolesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessTfaSingleSingle Add a TFA entry for a user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessTfaSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateAccessTfaSingleSingle(string id, string userid, UpdateAccessTfaSingleSingleRequest updateAccessTfaSingleSingleRequest = default(UpdateAccessTfaSingleSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateAccessTfaSingleSingleWithHttpInfo(id, userid, updateAccessTfaSingleSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessTfaSingleSingle Add a TFA entry for a user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessTfaSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateAccessTfaSingleSingleWithHttpInfo(string id, string userid, UpdateAccessTfaSingleSingleRequest updateAccessTfaSingleSingleRequest = default(UpdateAccessTfaSingleSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateAccessTfaSingleSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->UpdateAccessTfaSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = updateAccessTfaSingleSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessTfaSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/access/tfa/{userid}/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessTfaSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessTfaSingleSingle Add a TFA entry for a user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessTfaSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessTfaSingleSingleAsync(string id, string userid, UpdateAccessTfaSingleSingleRequest updateAccessTfaSingleSingleRequest = default(UpdateAccessTfaSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateAccessTfaSingleSingleWithHttpInfoAsync(id, userid, updateAccessTfaSingleSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessTfaSingleSingle Add a TFA entry for a user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessTfaSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateAccessTfaSingleSingleWithHttpInfoAsync(string id, string userid, UpdateAccessTfaSingleSingleRequest updateAccessTfaSingleSingleRequest = default(UpdateAccessTfaSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateAccessTfaSingleSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->UpdateAccessTfaSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = updateAccessTfaSingleSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessTfaSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/access/tfa/{userid}/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessTfaSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessUsersSingle Update user configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateAccessUsersSingle(string userid, UpdateAccessUsersSingleRequest updateAccessUsersSingleRequest = default(UpdateAccessUsersSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateAccessUsersSingleWithHttpInfo(userid, updateAccessUsersSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessUsersSingle Update user configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateAccessUsersSingleWithHttpInfo(string userid, UpdateAccessUsersSingleRequest updateAccessUsersSingleRequest = default(UpdateAccessUsersSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->UpdateAccessUsersSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = updateAccessUsersSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessUsersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/access/users/{userid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessUsersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessUsersSingle Update user configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateAccessUsersSingleAsync(string userid, UpdateAccessUsersSingleRequest updateAccessUsersSingleRequest = default(UpdateAccessUsersSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateAccessUsersSingleWithHttpInfoAsync(userid, updateAccessUsersSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessUsersSingle Update user configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateAccessUsersSingleWithHttpInfoAsync(string userid, UpdateAccessUsersSingleRequest updateAccessUsersSingleRequest = default(UpdateAccessUsersSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->UpdateAccessUsersSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = updateAccessUsersSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessUsersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/access/users/{userid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessUsersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessUsersSingleTokenSingle Update API token for a specific user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>UpdateAccessUsersSingleTokenSingle200Response</returns>
        public UpdateAccessUsersSingleTokenSingle200Response UpdateAccessUsersSingleTokenSingle(string tokenid, string userid, UpdateAccessUsersSingleTokenSingleRequest updateAccessUsersSingleTokenSingleRequest = default(UpdateAccessUsersSingleTokenSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<UpdateAccessUsersSingleTokenSingle200Response> localVarResponse = UpdateAccessUsersSingleTokenSingleWithHttpInfo(tokenid, userid, updateAccessUsersSingleTokenSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessUsersSingleTokenSingle Update API token for a specific user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of UpdateAccessUsersSingleTokenSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<UpdateAccessUsersSingleTokenSingle200Response> UpdateAccessUsersSingleTokenSingleWithHttpInfo(string tokenid, string userid, UpdateAccessUsersSingleTokenSingleRequest updateAccessUsersSingleTokenSingleRequest = default(UpdateAccessUsersSingleTokenSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'tokenid' is set
            if (tokenid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'tokenid' when calling ProxmoxGeneratedApi->UpdateAccessUsersSingleTokenSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->UpdateAccessUsersSingleTokenSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tokenid", ProxmoxSharp.Client.ClientUtils.ParameterToString(tokenid)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = updateAccessUsersSingleTokenSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessUsersSingleTokenSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<UpdateAccessUsersSingleTokenSingle200Response>("/access/users/{userid}/token/{tokenid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessUsersSingleTokenSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessUsersSingleTokenSingle Update API token for a specific user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of UpdateAccessUsersSingleTokenSingle200Response</returns>
        public async System.Threading.Tasks.Task<UpdateAccessUsersSingleTokenSingle200Response> UpdateAccessUsersSingleTokenSingleAsync(string tokenid, string userid, UpdateAccessUsersSingleTokenSingleRequest updateAccessUsersSingleTokenSingleRequest = default(UpdateAccessUsersSingleTokenSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<UpdateAccessUsersSingleTokenSingle200Response> localVarResponse = await UpdateAccessUsersSingleTokenSingleWithHttpInfoAsync(tokenid, userid, updateAccessUsersSingleTokenSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessUsersSingleTokenSingle Update API token for a specific user.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenid">tokenid</param>
        /// <param name="userid">userid</param>
        /// <param name="updateAccessUsersSingleTokenSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (UpdateAccessUsersSingleTokenSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<UpdateAccessUsersSingleTokenSingle200Response>> UpdateAccessUsersSingleTokenSingleWithHttpInfoAsync(string tokenid, string userid, UpdateAccessUsersSingleTokenSingleRequest updateAccessUsersSingleTokenSingleRequest = default(UpdateAccessUsersSingleTokenSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'tokenid' is set
            if (tokenid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'tokenid' when calling ProxmoxGeneratedApi->UpdateAccessUsersSingleTokenSingle");
            }

            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->UpdateAccessUsersSingleTokenSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tokenid", ProxmoxSharp.Client.ClientUtils.ParameterToString(tokenid)); // path parameter
            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = updateAccessUsersSingleTokenSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessUsersSingleTokenSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<UpdateAccessUsersSingleTokenSingle200Response>("/access/users/{userid}/token/{tokenid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessUsersSingleTokenSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessUsersSingleUnlocktfa Unlock a user&#39;s TFA authentication.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GetClusterCephFlagsSingle200Response</returns>
        public GetClusterCephFlagsSingle200Response UpdateAccessUsersSingleUnlocktfa(string userid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterCephFlagsSingle200Response> localVarResponse = UpdateAccessUsersSingleUnlocktfaWithHttpInfo(userid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessUsersSingleUnlocktfa Unlock a user&#39;s TFA authentication.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GetClusterCephFlagsSingle200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<GetClusterCephFlagsSingle200Response> UpdateAccessUsersSingleUnlocktfaWithHttpInfo(string userid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->UpdateAccessUsersSingleUnlocktfa");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessUsersSingleUnlocktfa";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<GetClusterCephFlagsSingle200Response>("/access/users/{userid}/unlock-tfa", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessUsersSingleUnlocktfa", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateAccessUsersSingleUnlocktfa Unlock a user&#39;s TFA authentication.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GetClusterCephFlagsSingle200Response</returns>
        public async System.Threading.Tasks.Task<GetClusterCephFlagsSingle200Response> UpdateAccessUsersSingleUnlocktfaAsync(string userid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<GetClusterCephFlagsSingle200Response> localVarResponse = await UpdateAccessUsersSingleUnlocktfaWithHttpInfoAsync(userid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateAccessUsersSingleUnlocktfa Unlock a user&#39;s TFA authentication.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="userid">userid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GetClusterCephFlagsSingle200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<GetClusterCephFlagsSingle200Response>> UpdateAccessUsersSingleUnlocktfaWithHttpInfoAsync(string userid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'userid' is set
            if (userid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'userid' when calling ProxmoxGeneratedApi->UpdateAccessUsersSingleUnlocktfa");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("userid", ProxmoxSharp.Client.ClientUtils.ParameterToString(userid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateAccessUsersSingleUnlocktfa";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<GetClusterCephFlagsSingle200Response>("/access/users/{userid}/unlock-tfa", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateAccessUsersSingleUnlocktfa", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterAcmeAccountSingle Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterAcmeAccountSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterAcmeAccountSingle(string name, UpdateClusterAcmeAccountSingleRequest updateClusterAcmeAccountSingleRequest = default(UpdateClusterAcmeAccountSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterAcmeAccountSingleWithHttpInfo(name, updateClusterAcmeAccountSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterAcmeAccountSingle Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterAcmeAccountSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterAcmeAccountSingleWithHttpInfo(string name, UpdateClusterAcmeAccountSingleRequest updateClusterAcmeAccountSingleRequest = default(UpdateClusterAcmeAccountSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterAcmeAccountSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterAcmeAccountSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterAcmeAccountSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/acme/account/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterAcmeAccountSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterAcmeAccountSingle Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterAcmeAccountSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterAcmeAccountSingleAsync(string name, UpdateClusterAcmeAccountSingleRequest updateClusterAcmeAccountSingleRequest = default(UpdateClusterAcmeAccountSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterAcmeAccountSingleWithHttpInfoAsync(name, updateClusterAcmeAccountSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterAcmeAccountSingle Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterAcmeAccountSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterAcmeAccountSingleWithHttpInfoAsync(string name, UpdateClusterAcmeAccountSingleRequest updateClusterAcmeAccountSingleRequest = default(UpdateClusterAcmeAccountSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterAcmeAccountSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterAcmeAccountSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterAcmeAccountSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/acme/account/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterAcmeAccountSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterAcmePluginsSingle Update ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterAcmePluginsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterAcmePluginsSingle(string id, UpdateClusterAcmePluginsSingleRequest updateClusterAcmePluginsSingleRequest = default(UpdateClusterAcmePluginsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterAcmePluginsSingleWithHttpInfo(id, updateClusterAcmePluginsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterAcmePluginsSingle Update ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterAcmePluginsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterAcmePluginsSingleWithHttpInfo(string id, UpdateClusterAcmePluginsSingleRequest updateClusterAcmePluginsSingleRequest = default(UpdateClusterAcmePluginsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterAcmePluginsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterAcmePluginsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterAcmePluginsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/acme/plugins/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterAcmePluginsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterAcmePluginsSingle Update ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterAcmePluginsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterAcmePluginsSingleAsync(string id, UpdateClusterAcmePluginsSingleRequest updateClusterAcmePluginsSingleRequest = default(UpdateClusterAcmePluginsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterAcmePluginsSingleWithHttpInfoAsync(id, updateClusterAcmePluginsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterAcmePluginsSingle Update ACME plugin configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterAcmePluginsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterAcmePluginsSingleWithHttpInfoAsync(string id, UpdateClusterAcmePluginsSingleRequest updateClusterAcmePluginsSingleRequest = default(UpdateClusterAcmePluginsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterAcmePluginsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterAcmePluginsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterAcmePluginsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/acme/plugins/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterAcmePluginsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterBackupSingle Update vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterBackupSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterBackupSingle(string id, UpdateClusterBackupSingleRequest updateClusterBackupSingleRequest = default(UpdateClusterBackupSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterBackupSingleWithHttpInfo(id, updateClusterBackupSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterBackupSingle Update vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterBackupSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterBackupSingleWithHttpInfo(string id, UpdateClusterBackupSingleRequest updateClusterBackupSingleRequest = default(UpdateClusterBackupSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterBackupSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterBackupSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterBackupSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/backup/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterBackupSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterBackupSingle Update vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterBackupSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterBackupSingleAsync(string id, UpdateClusterBackupSingleRequest updateClusterBackupSingleRequest = default(UpdateClusterBackupSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterBackupSingleWithHttpInfoAsync(id, updateClusterBackupSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterBackupSingle Update vzdump backup job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterBackupSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterBackupSingleWithHttpInfoAsync(string id, UpdateClusterBackupSingleRequest updateClusterBackupSingleRequest = default(UpdateClusterBackupSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterBackupSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterBackupSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterBackupSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/backup/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterBackupSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterCephFlags Set/Unset multiple ceph flags at once.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterCephFlagsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterCephFlags(UpdateClusterCephFlagsRequest updateClusterCephFlagsRequest = default(UpdateClusterCephFlagsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterCephFlagsWithHttpInfo(updateClusterCephFlagsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterCephFlags Set/Unset multiple ceph flags at once.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterCephFlagsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterCephFlagsWithHttpInfo(UpdateClusterCephFlagsRequest updateClusterCephFlagsRequest = default(UpdateClusterCephFlagsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateClusterCephFlagsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterCephFlags";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/ceph/flags", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterCephFlags", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterCephFlags Set/Unset multiple ceph flags at once.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterCephFlagsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterCephFlagsAsync(UpdateClusterCephFlagsRequest updateClusterCephFlagsRequest = default(UpdateClusterCephFlagsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterCephFlagsWithHttpInfoAsync(updateClusterCephFlagsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterCephFlags Set/Unset multiple ceph flags at once.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterCephFlagsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterCephFlagsWithHttpInfoAsync(UpdateClusterCephFlagsRequest updateClusterCephFlagsRequest = default(UpdateClusterCephFlagsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateClusterCephFlagsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterCephFlags";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/ceph/flags", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterCephFlags", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterCephFlagsSingle Set or clear (unset) a specific ceph flag
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="updateClusterCephFlagsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterCephFlagsSingle(string flag, UpdateClusterCephFlagsSingleRequest updateClusterCephFlagsSingleRequest = default(UpdateClusterCephFlagsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterCephFlagsSingleWithHttpInfo(flag, updateClusterCephFlagsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterCephFlagsSingle Set or clear (unset) a specific ceph flag
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="updateClusterCephFlagsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterCephFlagsSingleWithHttpInfo(string flag, UpdateClusterCephFlagsSingleRequest updateClusterCephFlagsSingleRequest = default(UpdateClusterCephFlagsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'flag' is set
            if (flag == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'flag' when calling ProxmoxGeneratedApi->UpdateClusterCephFlagsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("flag", ProxmoxSharp.Client.ClientUtils.ParameterToString(flag)); // path parameter
            localVarRequestOptions.Data = updateClusterCephFlagsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterCephFlagsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/ceph/flags/{flag}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterCephFlagsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterCephFlagsSingle Set or clear (unset) a specific ceph flag
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="updateClusterCephFlagsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterCephFlagsSingleAsync(string flag, UpdateClusterCephFlagsSingleRequest updateClusterCephFlagsSingleRequest = default(UpdateClusterCephFlagsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterCephFlagsSingleWithHttpInfoAsync(flag, updateClusterCephFlagsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterCephFlagsSingle Set or clear (unset) a specific ceph flag
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="flag">flag</param>
        /// <param name="updateClusterCephFlagsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterCephFlagsSingleWithHttpInfoAsync(string flag, UpdateClusterCephFlagsSingleRequest updateClusterCephFlagsSingleRequest = default(UpdateClusterCephFlagsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'flag' is set
            if (flag == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'flag' when calling ProxmoxGeneratedApi->UpdateClusterCephFlagsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("flag", ProxmoxSharp.Client.ClientUtils.ParameterToString(flag)); // path parameter
            localVarRequestOptions.Data = updateClusterCephFlagsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterCephFlagsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/ceph/flags/{flag}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterCephFlagsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterFirewallAliasesSingle(string name, UpdateClusterFirewallAliasesSingleRequest updateClusterFirewallAliasesSingleRequest = default(UpdateClusterFirewallAliasesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterFirewallAliasesSingleWithHttpInfo(name, updateClusterFirewallAliasesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallAliasesSingleWithHttpInfo(string name, UpdateClusterFirewallAliasesSingleRequest updateClusterFirewallAliasesSingleRequest = default(UpdateClusterFirewallAliasesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterFirewallAliasesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallAliasesSingleAsync(string name, UpdateClusterFirewallAliasesSingleRequest updateClusterFirewallAliasesSingleRequest = default(UpdateClusterFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterFirewallAliasesSingleWithHttpInfoAsync(name, updateClusterFirewallAliasesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallAliasesSingleWithHttpInfoAsync(string name, UpdateClusterFirewallAliasesSingleRequest updateClusterFirewallAliasesSingleRequest = default(UpdateClusterFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterFirewallAliasesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallGroupRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterFirewallGroupRule(string group, int pos, UpdateClusterFirewallGroupRuleRequest updateClusterFirewallGroupRuleRequest = default(UpdateClusterFirewallGroupRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterFirewallGroupRuleWithHttpInfo(group, pos, updateClusterFirewallGroupRuleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallGroupRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallGroupRuleWithHttpInfo(string group, int pos, UpdateClusterFirewallGroupRuleRequest updateClusterFirewallGroupRuleRequest = default(UpdateClusterFirewallGroupRuleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->UpdateClusterFirewallGroupRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.Data = updateClusterFirewallGroupRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallGroupRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/firewall/groups/{group}/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallGroupRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallGroupRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallGroupRuleAsync(string group, int pos, UpdateClusterFirewallGroupRuleRequest updateClusterFirewallGroupRuleRequest = default(UpdateClusterFirewallGroupRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterFirewallGroupRuleWithHttpInfoAsync(group, pos, updateClusterFirewallGroupRuleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallGroupRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallGroupRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallGroupRuleWithHttpInfoAsync(string group, int pos, UpdateClusterFirewallGroupRuleRequest updateClusterFirewallGroupRuleRequest = default(UpdateClusterFirewallGroupRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->UpdateClusterFirewallGroupRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.Data = updateClusterFirewallGroupRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallGroupRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/firewall/groups/{group}/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallGroupRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallIPSetIP Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterFirewallIPSetIP(string cidr, string name, UpdateClusterFirewallIPSetIPRequest updateClusterFirewallIPSetIPRequest = default(UpdateClusterFirewallIPSetIPRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterFirewallIPSetIPWithHttpInfo(cidr, name, updateClusterFirewallIPSetIPRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallIPSetIP Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallIPSetIPWithHttpInfo(string cidr, string name, UpdateClusterFirewallIPSetIPRequest updateClusterFirewallIPSetIPRequest = default(UpdateClusterFirewallIPSetIPRequest), int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->UpdateClusterFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterFirewallIPSetIP");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterFirewallIPSetIPRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallIPSetIP Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallIPSetIPAsync(string cidr, string name, UpdateClusterFirewallIPSetIPRequest updateClusterFirewallIPSetIPRequest = default(UpdateClusterFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterFirewallIPSetIPWithHttpInfoAsync(cidr, name, updateClusterFirewallIPSetIPRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallIPSetIP Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="updateClusterFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, UpdateClusterFirewallIPSetIPRequest updateClusterFirewallIPSetIPRequest = default(UpdateClusterFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->UpdateClusterFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterFirewallIPSetIP");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterFirewallIPSetIPRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterFirewallOptions(UpdateClusterFirewallOptionsRequest updateClusterFirewallOptionsRequest = default(UpdateClusterFirewallOptionsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterFirewallOptionsWithHttpInfo(updateClusterFirewallOptionsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallOptionsWithHttpInfo(UpdateClusterFirewallOptionsRequest updateClusterFirewallOptionsRequest = default(UpdateClusterFirewallOptionsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateClusterFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallOptionsAsync(UpdateClusterFirewallOptionsRequest updateClusterFirewallOptionsRequest = default(UpdateClusterFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterFirewallOptionsWithHttpInfoAsync(updateClusterFirewallOptionsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallOptionsWithHttpInfoAsync(UpdateClusterFirewallOptionsRequest updateClusterFirewallOptionsRequest = default(UpdateClusterFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateClusterFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterFirewallRule(int pos, UpdateClusterFirewallRuleRequest updateClusterFirewallRuleRequest = default(UpdateClusterFirewallRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterFirewallRuleWithHttpInfo(pos, updateClusterFirewallRuleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterFirewallRuleWithHttpInfo(int pos, UpdateClusterFirewallRuleRequest updateClusterFirewallRuleRequest = default(UpdateClusterFirewallRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.Data = updateClusterFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterFirewallRuleAsync(int pos, UpdateClusterFirewallRuleRequest updateClusterFirewallRuleRequest = default(UpdateClusterFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterFirewallRuleWithHttpInfoAsync(pos, updateClusterFirewallRuleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="updateClusterFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterFirewallRuleWithHttpInfoAsync(int pos, UpdateClusterFirewallRuleRequest updateClusterFirewallRuleRequest = default(UpdateClusterFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.Data = updateClusterFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterHaGroupsSingle Update ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="updateClusterHaGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterHaGroupsSingle(string group, UpdateClusterHaGroupsSingleRequest updateClusterHaGroupsSingleRequest = default(UpdateClusterHaGroupsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterHaGroupsSingleWithHttpInfo(group, updateClusterHaGroupsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterHaGroupsSingle Update ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="updateClusterHaGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterHaGroupsSingleWithHttpInfo(string group, UpdateClusterHaGroupsSingleRequest updateClusterHaGroupsSingleRequest = default(UpdateClusterHaGroupsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->UpdateClusterHaGroupsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.Data = updateClusterHaGroupsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterHaGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/ha/groups/{group}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterHaGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterHaGroupsSingle Update ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="updateClusterHaGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterHaGroupsSingleAsync(string group, UpdateClusterHaGroupsSingleRequest updateClusterHaGroupsSingleRequest = default(UpdateClusterHaGroupsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterHaGroupsSingleWithHttpInfoAsync(group, updateClusterHaGroupsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterHaGroupsSingle Update ha group configuration. (deprecated in favor of HA rules)
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="group">group</param>
        /// <param name="updateClusterHaGroupsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterHaGroupsSingleWithHttpInfoAsync(string group, UpdateClusterHaGroupsSingleRequest updateClusterHaGroupsSingleRequest = default(UpdateClusterHaGroupsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'group' is set
            if (group == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'group' when calling ProxmoxGeneratedApi->UpdateClusterHaGroupsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("group", ProxmoxSharp.Client.ClientUtils.ParameterToString(group)); // path parameter
            localVarRequestOptions.Data = updateClusterHaGroupsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterHaGroupsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/ha/groups/{group}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterHaGroupsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterHaResourcesSingle Update resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="updateClusterHaResourcesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterHaResourcesSingle(string sid, UpdateClusterHaResourcesSingleRequest updateClusterHaResourcesSingleRequest = default(UpdateClusterHaResourcesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterHaResourcesSingleWithHttpInfo(sid, updateClusterHaResourcesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterHaResourcesSingle Update resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="updateClusterHaResourcesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterHaResourcesSingleWithHttpInfo(string sid, UpdateClusterHaResourcesSingleRequest updateClusterHaResourcesSingleRequest = default(UpdateClusterHaResourcesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->UpdateClusterHaResourcesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter
            localVarRequestOptions.Data = updateClusterHaResourcesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterHaResourcesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/ha/resources/{sid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterHaResourcesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterHaResourcesSingle Update resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="updateClusterHaResourcesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterHaResourcesSingleAsync(string sid, UpdateClusterHaResourcesSingleRequest updateClusterHaResourcesSingleRequest = default(UpdateClusterHaResourcesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterHaResourcesSingleWithHttpInfoAsync(sid, updateClusterHaResourcesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterHaResourcesSingle Update resource configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sid">sid</param>
        /// <param name="updateClusterHaResourcesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterHaResourcesSingleWithHttpInfoAsync(string sid, UpdateClusterHaResourcesSingleRequest updateClusterHaResourcesSingleRequest = default(UpdateClusterHaResourcesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'sid' is set
            if (sid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'sid' when calling ProxmoxGeneratedApi->UpdateClusterHaResourcesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("sid", ProxmoxSharp.Client.ClientUtils.ParameterToString(sid)); // path parameter
            localVarRequestOptions.Data = updateClusterHaResourcesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterHaResourcesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/ha/resources/{sid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterHaResourcesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterHaRulesSingle Update HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="updateClusterHaRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterHaRulesSingle(string rule, UpdateClusterHaRulesSingleRequest updateClusterHaRulesSingleRequest = default(UpdateClusterHaRulesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterHaRulesSingleWithHttpInfo(rule, updateClusterHaRulesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterHaRulesSingle Update HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="updateClusterHaRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterHaRulesSingleWithHttpInfo(string rule, UpdateClusterHaRulesSingleRequest updateClusterHaRulesSingleRequest = default(UpdateClusterHaRulesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'rule' is set
            if (rule == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'rule' when calling ProxmoxGeneratedApi->UpdateClusterHaRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("rule", ProxmoxSharp.Client.ClientUtils.ParameterToString(rule)); // path parameter
            localVarRequestOptions.Data = updateClusterHaRulesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterHaRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/ha/rules/{rule}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterHaRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterHaRulesSingle Update HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="updateClusterHaRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterHaRulesSingleAsync(string rule, UpdateClusterHaRulesSingleRequest updateClusterHaRulesSingleRequest = default(UpdateClusterHaRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterHaRulesSingleWithHttpInfoAsync(rule, updateClusterHaRulesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterHaRulesSingle Update HA rule.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="rule">rule</param>
        /// <param name="updateClusterHaRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterHaRulesSingleWithHttpInfoAsync(string rule, UpdateClusterHaRulesSingleRequest updateClusterHaRulesSingleRequest = default(UpdateClusterHaRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'rule' is set
            if (rule == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'rule' when calling ProxmoxGeneratedApi->UpdateClusterHaRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("rule", ProxmoxSharp.Client.ClientUtils.ParameterToString(rule)); // path parameter
            localVarRequestOptions.Data = updateClusterHaRulesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterHaRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/ha/rules/{rule}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterHaRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterJobsRealmsyncSingle Update realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterJobsRealmsyncSingle(string id, UpdateClusterJobsRealmsyncSingleRequest updateClusterJobsRealmsyncSingleRequest = default(UpdateClusterJobsRealmsyncSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterJobsRealmsyncSingleWithHttpInfo(id, updateClusterJobsRealmsyncSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterJobsRealmsyncSingle Update realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterJobsRealmsyncSingleWithHttpInfo(string id, UpdateClusterJobsRealmsyncSingleRequest updateClusterJobsRealmsyncSingleRequest = default(UpdateClusterJobsRealmsyncSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterJobsRealmsyncSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterJobsRealmsyncSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterJobsRealmsyncSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/jobs/realm-sync/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterJobsRealmsyncSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterJobsRealmsyncSingle Update realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterJobsRealmsyncSingleAsync(string id, UpdateClusterJobsRealmsyncSingleRequest updateClusterJobsRealmsyncSingleRequest = default(UpdateClusterJobsRealmsyncSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterJobsRealmsyncSingleWithHttpInfoAsync(id, updateClusterJobsRealmsyncSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterJobsRealmsyncSingle Update realm-sync job definition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterJobsRealmsyncSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterJobsRealmsyncSingleWithHttpInfoAsync(string id, UpdateClusterJobsRealmsyncSingleRequest updateClusterJobsRealmsyncSingleRequest = default(UpdateClusterJobsRealmsyncSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterJobsRealmsyncSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterJobsRealmsyncSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterJobsRealmsyncSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/jobs/realm-sync/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterJobsRealmsyncSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterMappingDirSingle Update a directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingDirSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterMappingDirSingle(string id, UpdateClusterMappingDirSingleRequest updateClusterMappingDirSingleRequest = default(UpdateClusterMappingDirSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterMappingDirSingleWithHttpInfo(id, updateClusterMappingDirSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterMappingDirSingle Update a directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingDirSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterMappingDirSingleWithHttpInfo(string id, UpdateClusterMappingDirSingleRequest updateClusterMappingDirSingleRequest = default(UpdateClusterMappingDirSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterMappingDirSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterMappingDirSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterMappingDirSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/mapping/dir/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterMappingDirSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterMappingDirSingle Update a directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingDirSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterMappingDirSingleAsync(string id, UpdateClusterMappingDirSingleRequest updateClusterMappingDirSingleRequest = default(UpdateClusterMappingDirSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterMappingDirSingleWithHttpInfoAsync(id, updateClusterMappingDirSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterMappingDirSingle Update a directory mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingDirSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterMappingDirSingleWithHttpInfoAsync(string id, UpdateClusterMappingDirSingleRequest updateClusterMappingDirSingleRequest = default(UpdateClusterMappingDirSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterMappingDirSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterMappingDirSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterMappingDirSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/mapping/dir/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterMappingDirSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterMappingPciSingle Update a hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingPciSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterMappingPciSingle(string id, UpdateClusterMappingPciSingleRequest updateClusterMappingPciSingleRequest = default(UpdateClusterMappingPciSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterMappingPciSingleWithHttpInfo(id, updateClusterMappingPciSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterMappingPciSingle Update a hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingPciSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterMappingPciSingleWithHttpInfo(string id, UpdateClusterMappingPciSingleRequest updateClusterMappingPciSingleRequest = default(UpdateClusterMappingPciSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterMappingPciSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterMappingPciSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterMappingPciSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/mapping/pci/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterMappingPciSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterMappingPciSingle Update a hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingPciSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterMappingPciSingleAsync(string id, UpdateClusterMappingPciSingleRequest updateClusterMappingPciSingleRequest = default(UpdateClusterMappingPciSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterMappingPciSingleWithHttpInfoAsync(id, updateClusterMappingPciSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterMappingPciSingle Update a hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingPciSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterMappingPciSingleWithHttpInfoAsync(string id, UpdateClusterMappingPciSingleRequest updateClusterMappingPciSingleRequest = default(UpdateClusterMappingPciSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterMappingPciSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterMappingPciSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterMappingPciSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/mapping/pci/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterMappingPciSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterMappingUsbSingle Update a hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingUsbSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterMappingUsbSingle(string id, UpdateClusterMappingUsbSingleRequest updateClusterMappingUsbSingleRequest = default(UpdateClusterMappingUsbSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterMappingUsbSingleWithHttpInfo(id, updateClusterMappingUsbSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterMappingUsbSingle Update a hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingUsbSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterMappingUsbSingleWithHttpInfo(string id, UpdateClusterMappingUsbSingleRequest updateClusterMappingUsbSingleRequest = default(UpdateClusterMappingUsbSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterMappingUsbSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterMappingUsbSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterMappingUsbSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/mapping/usb/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterMappingUsbSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterMappingUsbSingle Update a hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingUsbSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterMappingUsbSingleAsync(string id, UpdateClusterMappingUsbSingleRequest updateClusterMappingUsbSingleRequest = default(UpdateClusterMappingUsbSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterMappingUsbSingleWithHttpInfoAsync(id, updateClusterMappingUsbSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterMappingUsbSingle Update a hardware mapping.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMappingUsbSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterMappingUsbSingleWithHttpInfoAsync(string id, UpdateClusterMappingUsbSingleRequest updateClusterMappingUsbSingleRequest = default(UpdateClusterMappingUsbSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterMappingUsbSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterMappingUsbSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterMappingUsbSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/mapping/usb/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterMappingUsbSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterMetricsServerSingle Update metric server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterMetricsServerSingle(string id, UpdateClusterMetricsServerSingleRequest updateClusterMetricsServerSingleRequest = default(UpdateClusterMetricsServerSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterMetricsServerSingleWithHttpInfo(id, updateClusterMetricsServerSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterMetricsServerSingle Update metric server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterMetricsServerSingleWithHttpInfo(string id, UpdateClusterMetricsServerSingleRequest updateClusterMetricsServerSingleRequest = default(UpdateClusterMetricsServerSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterMetricsServerSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterMetricsServerSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterMetricsServerSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/metrics/server/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterMetricsServerSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterMetricsServerSingle Update metric server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterMetricsServerSingleAsync(string id, UpdateClusterMetricsServerSingleRequest updateClusterMetricsServerSingleRequest = default(UpdateClusterMetricsServerSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterMetricsServerSingleWithHttpInfoAsync(id, updateClusterMetricsServerSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterMetricsServerSingle Update metric server configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterMetricsServerSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterMetricsServerSingleWithHttpInfoAsync(string id, UpdateClusterMetricsServerSingleRequest updateClusterMetricsServerSingleRequest = default(UpdateClusterMetricsServerSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterMetricsServerSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterMetricsServerSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterMetricsServerSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/metrics/server/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterMetricsServerSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsGotifySingle Update existing gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsGotifySingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterNotificationsEndpointsGotifySingle(string name, UpdateClusterNotificationsEndpointsGotifySingleRequest updateClusterNotificationsEndpointsGotifySingleRequest = default(UpdateClusterNotificationsEndpointsGotifySingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterNotificationsEndpointsGotifySingleWithHttpInfo(name, updateClusterNotificationsEndpointsGotifySingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsGotifySingle Update existing gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsGotifySingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsGotifySingleWithHttpInfo(string name, UpdateClusterNotificationsEndpointsGotifySingleRequest updateClusterNotificationsEndpointsGotifySingleRequest = default(UpdateClusterNotificationsEndpointsGotifySingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsEndpointsGotifySingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsEndpointsGotifySingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsEndpointsGotifySingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/notifications/endpoints/gotify/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsEndpointsGotifySingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsGotifySingle Update existing gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsGotifySingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsGotifySingleAsync(string name, UpdateClusterNotificationsEndpointsGotifySingleRequest updateClusterNotificationsEndpointsGotifySingleRequest = default(UpdateClusterNotificationsEndpointsGotifySingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(name, updateClusterNotificationsEndpointsGotifySingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsGotifySingle Update existing gotify endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsGotifySingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsEndpointsGotifySingleWithHttpInfoAsync(string name, UpdateClusterNotificationsEndpointsGotifySingleRequest updateClusterNotificationsEndpointsGotifySingleRequest = default(UpdateClusterNotificationsEndpointsGotifySingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsEndpointsGotifySingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsEndpointsGotifySingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsEndpointsGotifySingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/gotify/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsEndpointsGotifySingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsSendmailSingle Update existing sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSendmailSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterNotificationsEndpointsSendmailSingle(string name, UpdateClusterNotificationsEndpointsSendmailSingleRequest updateClusterNotificationsEndpointsSendmailSingleRequest = default(UpdateClusterNotificationsEndpointsSendmailSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterNotificationsEndpointsSendmailSingleWithHttpInfo(name, updateClusterNotificationsEndpointsSendmailSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsSendmailSingle Update existing sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSendmailSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsSendmailSingleWithHttpInfo(string name, UpdateClusterNotificationsEndpointsSendmailSingleRequest updateClusterNotificationsEndpointsSendmailSingleRequest = default(UpdateClusterNotificationsEndpointsSendmailSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsEndpointsSendmailSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsEndpointsSendmailSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsEndpointsSendmailSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/notifications/endpoints/sendmail/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsEndpointsSendmailSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsSendmailSingle Update existing sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSendmailSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsSendmailSingleAsync(string name, UpdateClusterNotificationsEndpointsSendmailSingleRequest updateClusterNotificationsEndpointsSendmailSingleRequest = default(UpdateClusterNotificationsEndpointsSendmailSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(name, updateClusterNotificationsEndpointsSendmailSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsSendmailSingle Update existing sendmail endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSendmailSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsEndpointsSendmailSingleWithHttpInfoAsync(string name, UpdateClusterNotificationsEndpointsSendmailSingleRequest updateClusterNotificationsEndpointsSendmailSingleRequest = default(UpdateClusterNotificationsEndpointsSendmailSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsEndpointsSendmailSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsEndpointsSendmailSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsEndpointsSendmailSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/sendmail/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsEndpointsSendmailSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsSmtpSingle Update existing smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSmtpSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterNotificationsEndpointsSmtpSingle(string name, UpdateClusterNotificationsEndpointsSmtpSingleRequest updateClusterNotificationsEndpointsSmtpSingleRequest = default(UpdateClusterNotificationsEndpointsSmtpSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterNotificationsEndpointsSmtpSingleWithHttpInfo(name, updateClusterNotificationsEndpointsSmtpSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsSmtpSingle Update existing smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSmtpSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsSmtpSingleWithHttpInfo(string name, UpdateClusterNotificationsEndpointsSmtpSingleRequest updateClusterNotificationsEndpointsSmtpSingleRequest = default(UpdateClusterNotificationsEndpointsSmtpSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsEndpointsSmtpSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsEndpointsSmtpSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsEndpointsSmtpSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/notifications/endpoints/smtp/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsEndpointsSmtpSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsSmtpSingle Update existing smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSmtpSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsSmtpSingleAsync(string name, UpdateClusterNotificationsEndpointsSmtpSingleRequest updateClusterNotificationsEndpointsSmtpSingleRequest = default(UpdateClusterNotificationsEndpointsSmtpSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(name, updateClusterNotificationsEndpointsSmtpSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsSmtpSingle Update existing smtp endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsSmtpSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsEndpointsSmtpSingleWithHttpInfoAsync(string name, UpdateClusterNotificationsEndpointsSmtpSingleRequest updateClusterNotificationsEndpointsSmtpSingleRequest = default(UpdateClusterNotificationsEndpointsSmtpSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsEndpointsSmtpSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsEndpointsSmtpSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsEndpointsSmtpSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/smtp/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsEndpointsSmtpSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsWebhookSingle Update existing webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsWebhookSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterNotificationsEndpointsWebhookSingle(string name, UpdateClusterNotificationsEndpointsWebhookSingleRequest updateClusterNotificationsEndpointsWebhookSingleRequest = default(UpdateClusterNotificationsEndpointsWebhookSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterNotificationsEndpointsWebhookSingleWithHttpInfo(name, updateClusterNotificationsEndpointsWebhookSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsWebhookSingle Update existing webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsWebhookSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsWebhookSingleWithHttpInfo(string name, UpdateClusterNotificationsEndpointsWebhookSingleRequest updateClusterNotificationsEndpointsWebhookSingleRequest = default(UpdateClusterNotificationsEndpointsWebhookSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsEndpointsWebhookSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsEndpointsWebhookSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsEndpointsWebhookSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/notifications/endpoints/webhook/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsEndpointsWebhookSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsWebhookSingle Update existing webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsWebhookSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsEndpointsWebhookSingleAsync(string name, UpdateClusterNotificationsEndpointsWebhookSingleRequest updateClusterNotificationsEndpointsWebhookSingleRequest = default(UpdateClusterNotificationsEndpointsWebhookSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(name, updateClusterNotificationsEndpointsWebhookSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsEndpointsWebhookSingle Update existing webhook endpoint
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsEndpointsWebhookSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsEndpointsWebhookSingleWithHttpInfoAsync(string name, UpdateClusterNotificationsEndpointsWebhookSingleRequest updateClusterNotificationsEndpointsWebhookSingleRequest = default(UpdateClusterNotificationsEndpointsWebhookSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsEndpointsWebhookSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsEndpointsWebhookSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsEndpointsWebhookSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/notifications/endpoints/webhook/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsEndpointsWebhookSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsMatchersSingle Update existing matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsMatchersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterNotificationsMatchersSingle(string name, UpdateClusterNotificationsMatchersSingleRequest updateClusterNotificationsMatchersSingleRequest = default(UpdateClusterNotificationsMatchersSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterNotificationsMatchersSingleWithHttpInfo(name, updateClusterNotificationsMatchersSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsMatchersSingle Update existing matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsMatchersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterNotificationsMatchersSingleWithHttpInfo(string name, UpdateClusterNotificationsMatchersSingleRequest updateClusterNotificationsMatchersSingleRequest = default(UpdateClusterNotificationsMatchersSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsMatchersSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsMatchersSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsMatchersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/notifications/matchers/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsMatchersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterNotificationsMatchersSingle Update existing matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsMatchersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterNotificationsMatchersSingleAsync(string name, UpdateClusterNotificationsMatchersSingleRequest updateClusterNotificationsMatchersSingleRequest = default(UpdateClusterNotificationsMatchersSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterNotificationsMatchersSingleWithHttpInfoAsync(name, updateClusterNotificationsMatchersSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterNotificationsMatchersSingle Update existing matcher
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="updateClusterNotificationsMatchersSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterNotificationsMatchersSingleWithHttpInfoAsync(string name, UpdateClusterNotificationsMatchersSingleRequest updateClusterNotificationsMatchersSingleRequest = default(UpdateClusterNotificationsMatchersSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateClusterNotificationsMatchersSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.Data = updateClusterNotificationsMatchersSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterNotificationsMatchersSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/notifications/matchers/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterNotificationsMatchersSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterOptions Set datacenter options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterOptions(UpdateClusterOptionsRequest updateClusterOptionsRequest = default(UpdateClusterOptionsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterOptionsWithHttpInfo(updateClusterOptionsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterOptions Set datacenter options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterOptionsWithHttpInfo(UpdateClusterOptionsRequest updateClusterOptionsRequest = default(UpdateClusterOptionsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateClusterOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterOptions Set datacenter options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterOptionsAsync(UpdateClusterOptionsRequest updateClusterOptionsRequest = default(UpdateClusterOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterOptionsWithHttpInfoAsync(updateClusterOptionsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterOptions Set datacenter options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterOptionsWithHttpInfoAsync(UpdateClusterOptionsRequest updateClusterOptionsRequest = default(UpdateClusterOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateClusterOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterReplicationSingle Update replication job configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterReplicationSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterReplicationSingle(string id, UpdateClusterReplicationSingleRequest updateClusterReplicationSingleRequest = default(UpdateClusterReplicationSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterReplicationSingleWithHttpInfo(id, updateClusterReplicationSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterReplicationSingle Update replication job configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterReplicationSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterReplicationSingleWithHttpInfo(string id, UpdateClusterReplicationSingleRequest updateClusterReplicationSingleRequest = default(UpdateClusterReplicationSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterReplicationSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterReplicationSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterReplicationSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/replication/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterReplicationSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterReplicationSingle Update replication job configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterReplicationSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterReplicationSingleAsync(string id, UpdateClusterReplicationSingleRequest updateClusterReplicationSingleRequest = default(UpdateClusterReplicationSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterReplicationSingleWithHttpInfoAsync(id, updateClusterReplicationSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterReplicationSingle Update replication job configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterReplicationSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterReplicationSingleWithHttpInfoAsync(string id, UpdateClusterReplicationSingleRequest updateClusterReplicationSingleRequest = default(UpdateClusterReplicationSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterReplicationSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterReplicationSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterReplicationSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/replication/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterReplicationSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSDN Apply sdn controller changes &amp;&amp; reload.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterSDNRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSDN(UpdateClusterSDNRequest updateClusterSDNRequest = default(UpdateClusterSDNRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSDNWithHttpInfo(updateClusterSDNRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSDN Apply sdn controller changes &amp;&amp; reload.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterSDNRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSDNWithHttpInfo(UpdateClusterSDNRequest updateClusterSDNRequest = default(UpdateClusterSDNRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateClusterSDNRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSDN";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSDN", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSDN Apply sdn controller changes &amp;&amp; reload.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterSDNRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSDNAsync(UpdateClusterSDNRequest updateClusterSDNRequest = default(UpdateClusterSDNRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSDNWithHttpInfoAsync(updateClusterSDNRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSDN Apply sdn controller changes &amp;&amp; reload.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updateClusterSDNRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSDNWithHttpInfoAsync(UpdateClusterSDNRequest updateClusterSDNRequest = default(UpdateClusterSDNRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updateClusterSDNRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSDN";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSDN", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSDNController Update sdn controller object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="updateClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSDNController(string controller, UpdateClusterSDNControllerRequest updateClusterSDNControllerRequest = default(UpdateClusterSDNControllerRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSDNControllerWithHttpInfo(controller, updateClusterSDNControllerRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSDNController Update sdn controller object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="updateClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSDNControllerWithHttpInfo(string controller, UpdateClusterSDNControllerRequest updateClusterSDNControllerRequest = default(UpdateClusterSDNControllerRequest), int operationIndex = 0)
        {
            // verify the required parameter 'controller' is set
            if (controller == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'controller' when calling ProxmoxGeneratedApi->UpdateClusterSDNController");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("controller", ProxmoxSharp.Client.ClientUtils.ParameterToString(controller)); // path parameter
            localVarRequestOptions.Data = updateClusterSDNControllerRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSDNController";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/controllers/{controller}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSDNController", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSDNController Update sdn controller object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="updateClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSDNControllerAsync(string controller, UpdateClusterSDNControllerRequest updateClusterSDNControllerRequest = default(UpdateClusterSDNControllerRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSDNControllerWithHttpInfoAsync(controller, updateClusterSDNControllerRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSDNController Update sdn controller object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="controller">controller</param>
        /// <param name="updateClusterSDNControllerRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSDNControllerWithHttpInfoAsync(string controller, UpdateClusterSDNControllerRequest updateClusterSDNControllerRequest = default(UpdateClusterSDNControllerRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'controller' is set
            if (controller == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'controller' when calling ProxmoxGeneratedApi->UpdateClusterSDNController");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("controller", ProxmoxSharp.Client.ClientUtils.ParameterToString(controller)); // path parameter
            localVarRequestOptions.Data = updateClusterSDNControllerRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSDNController";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/controllers/{controller}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSDNController", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSDNVnet Update sdn vnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSDNVnet(string vnet, UpdateClusterSDNVnetRequest updateClusterSDNVnetRequest = default(UpdateClusterSDNVnetRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSDNVnetWithHttpInfo(vnet, updateClusterSDNVnetRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSDNVnet Update sdn vnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSDNVnetWithHttpInfo(string vnet, UpdateClusterSDNVnetRequest updateClusterSDNVnetRequest = default(UpdateClusterSDNVnetRequest), int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSDNVnet");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSDNVnetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSDNVnet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSDNVnet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSDNVnet Update sdn vnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSDNVnetAsync(string vnet, UpdateClusterSDNVnetRequest updateClusterSDNVnetRequest = default(UpdateClusterSDNVnetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSDNVnetWithHttpInfoAsync(vnet, updateClusterSDNVnetRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSDNVnet Update sdn vnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSDNVnetRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSDNVnetWithHttpInfoAsync(string vnet, UpdateClusterSDNVnetRequest updateClusterSDNVnetRequest = default(UpdateClusterSDNVnetRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSDNVnet");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSDNVnetRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSDNVnet";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSDNVnet", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSDNZone Update sdn zone object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="updateClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSDNZone(string zone, UpdateClusterSDNZoneRequest updateClusterSDNZoneRequest = default(UpdateClusterSDNZoneRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSDNZoneWithHttpInfo(zone, updateClusterSDNZoneRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSDNZone Update sdn zone object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="updateClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSDNZoneWithHttpInfo(string zone, UpdateClusterSDNZoneRequest updateClusterSDNZoneRequest = default(UpdateClusterSDNZoneRequest), int operationIndex = 0)
        {
            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->UpdateClusterSDNZone");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter
            localVarRequestOptions.Data = updateClusterSDNZoneRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/zones/{zone}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSDNZone Update sdn zone object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="updateClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSDNZoneAsync(string zone, UpdateClusterSDNZoneRequest updateClusterSDNZoneRequest = default(UpdateClusterSDNZoneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSDNZoneWithHttpInfoAsync(zone, updateClusterSDNZoneRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSDNZone Update sdn zone object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="zone">zone</param>
        /// <param name="updateClusterSDNZoneRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSDNZoneWithHttpInfoAsync(string zone, UpdateClusterSDNZoneRequest updateClusterSDNZoneRequest = default(UpdateClusterSDNZoneRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'zone' is set
            if (zone == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'zone' when calling ProxmoxGeneratedApi->UpdateClusterSDNZone");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("zone", ProxmoxSharp.Client.ClientUtils.ParameterToString(zone)); // path parameter
            localVarRequestOptions.Data = updateClusterSDNZoneRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSDNZone";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/zones/{zone}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSDNZone", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnDnsSingle Update sdn dns object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="updateClusterSdnDnsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSdnDnsSingle(string dns, UpdateClusterSdnDnsSingleRequest updateClusterSdnDnsSingleRequest = default(UpdateClusterSdnDnsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSdnDnsSingleWithHttpInfo(dns, updateClusterSdnDnsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnDnsSingle Update sdn dns object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="updateClusterSdnDnsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnDnsSingleWithHttpInfo(string dns, UpdateClusterSdnDnsSingleRequest updateClusterSdnDnsSingleRequest = default(UpdateClusterSdnDnsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'dns' is set
            if (dns == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'dns' when calling ProxmoxGeneratedApi->UpdateClusterSdnDnsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("dns", ProxmoxSharp.Client.ClientUtils.ParameterToString(dns)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnDnsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnDnsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/dns/{dns}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnDnsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnDnsSingle Update sdn dns object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="updateClusterSdnDnsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnDnsSingleAsync(string dns, UpdateClusterSdnDnsSingleRequest updateClusterSdnDnsSingleRequest = default(UpdateClusterSdnDnsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSdnDnsSingleWithHttpInfoAsync(dns, updateClusterSdnDnsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnDnsSingle Update sdn dns object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="dns">dns</param>
        /// <param name="updateClusterSdnDnsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnDnsSingleWithHttpInfoAsync(string dns, UpdateClusterSdnDnsSingleRequest updateClusterSdnDnsSingleRequest = default(UpdateClusterSdnDnsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'dns' is set
            if (dns == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'dns' when calling ProxmoxGeneratedApi->UpdateClusterSdnDnsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("dns", ProxmoxSharp.Client.ClientUtils.ParameterToString(dns)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnDnsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnDnsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/dns/{dns}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnDnsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnFabricsFabricSingle Update a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterSdnFabricsFabricSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSdnFabricsFabricSingle(string id, UpdateClusterSdnFabricsFabricSingleRequest updateClusterSdnFabricsFabricSingleRequest = default(UpdateClusterSdnFabricsFabricSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSdnFabricsFabricSingleWithHttpInfo(id, updateClusterSdnFabricsFabricSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnFabricsFabricSingle Update a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterSdnFabricsFabricSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnFabricsFabricSingleWithHttpInfo(string id, UpdateClusterSdnFabricsFabricSingleRequest updateClusterSdnFabricsFabricSingleRequest = default(UpdateClusterSdnFabricsFabricSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterSdnFabricsFabricSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnFabricsFabricSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnFabricsFabricSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/fabrics/fabric/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnFabricsFabricSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnFabricsFabricSingle Update a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterSdnFabricsFabricSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnFabricsFabricSingleAsync(string id, UpdateClusterSdnFabricsFabricSingleRequest updateClusterSdnFabricsFabricSingleRequest = default(UpdateClusterSdnFabricsFabricSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSdnFabricsFabricSingleWithHttpInfoAsync(id, updateClusterSdnFabricsFabricSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnFabricsFabricSingle Update a fabric
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id">id</param>
        /// <param name="updateClusterSdnFabricsFabricSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnFabricsFabricSingleWithHttpInfoAsync(string id, UpdateClusterSdnFabricsFabricSingleRequest updateClusterSdnFabricsFabricSingleRequest = default(UpdateClusterSdnFabricsFabricSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'id' when calling ProxmoxGeneratedApi->UpdateClusterSdnFabricsFabricSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", ProxmoxSharp.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnFabricsFabricSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnFabricsFabricSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/fabrics/fabric/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnFabricsFabricSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnFabricsNodeSingleSingle Update a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="updateClusterSdnFabricsNodeSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSdnFabricsNodeSingleSingle(string fabricId, string nodeId, UpdateClusterSdnFabricsNodeSingleSingleRequest updateClusterSdnFabricsNodeSingleSingleRequest = default(UpdateClusterSdnFabricsNodeSingleSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSdnFabricsNodeSingleSingleWithHttpInfo(fabricId, nodeId, updateClusterSdnFabricsNodeSingleSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnFabricsNodeSingleSingle Update a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="updateClusterSdnFabricsNodeSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnFabricsNodeSingleSingleWithHttpInfo(string fabricId, string nodeId, UpdateClusterSdnFabricsNodeSingleSingleRequest updateClusterSdnFabricsNodeSingleSingleRequest = default(UpdateClusterSdnFabricsNodeSingleSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->UpdateClusterSdnFabricsNodeSingleSingle");
            }

            // verify the required parameter 'nodeId' is set
            if (nodeId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'nodeId' when calling ProxmoxGeneratedApi->UpdateClusterSdnFabricsNodeSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter
            localVarRequestOptions.PathParameters.Add("node_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(nodeId)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnFabricsNodeSingleSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnFabricsNodeSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/fabrics/node/{fabric_id}/{node_id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnFabricsNodeSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnFabricsNodeSingleSingle Update a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="updateClusterSdnFabricsNodeSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnFabricsNodeSingleSingleAsync(string fabricId, string nodeId, UpdateClusterSdnFabricsNodeSingleSingleRequest updateClusterSdnFabricsNodeSingleSingleRequest = default(UpdateClusterSdnFabricsNodeSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(fabricId, nodeId, updateClusterSdnFabricsNodeSingleSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnFabricsNodeSingleSingle Update a node
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="fabricId">fabric_id</param>
        /// <param name="nodeId">node_id</param>
        /// <param name="updateClusterSdnFabricsNodeSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnFabricsNodeSingleSingleWithHttpInfoAsync(string fabricId, string nodeId, UpdateClusterSdnFabricsNodeSingleSingleRequest updateClusterSdnFabricsNodeSingleSingleRequest = default(UpdateClusterSdnFabricsNodeSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'fabricId' is set
            if (fabricId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'fabricId' when calling ProxmoxGeneratedApi->UpdateClusterSdnFabricsNodeSingleSingle");
            }

            // verify the required parameter 'nodeId' is set
            if (nodeId == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'nodeId' when calling ProxmoxGeneratedApi->UpdateClusterSdnFabricsNodeSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("fabric_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(fabricId)); // path parameter
            localVarRequestOptions.PathParameters.Add("node_id", ProxmoxSharp.Client.ClientUtils.ParameterToString(nodeId)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnFabricsNodeSingleSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnFabricsNodeSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/fabrics/node/{fabric_id}/{node_id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnFabricsNodeSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnIpamsSingle Update sdn ipam object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="updateClusterSdnIpamsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSdnIpamsSingle(string ipam, UpdateClusterSdnIpamsSingleRequest updateClusterSdnIpamsSingleRequest = default(UpdateClusterSdnIpamsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSdnIpamsSingleWithHttpInfo(ipam, updateClusterSdnIpamsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnIpamsSingle Update sdn ipam object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="updateClusterSdnIpamsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnIpamsSingleWithHttpInfo(string ipam, UpdateClusterSdnIpamsSingleRequest updateClusterSdnIpamsSingleRequest = default(UpdateClusterSdnIpamsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'ipam' is set
            if (ipam == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'ipam' when calling ProxmoxGeneratedApi->UpdateClusterSdnIpamsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("ipam", ProxmoxSharp.Client.ClientUtils.ParameterToString(ipam)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnIpamsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnIpamsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/ipams/{ipam}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnIpamsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnIpamsSingle Update sdn ipam object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="updateClusterSdnIpamsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnIpamsSingleAsync(string ipam, UpdateClusterSdnIpamsSingleRequest updateClusterSdnIpamsSingleRequest = default(UpdateClusterSdnIpamsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSdnIpamsSingleWithHttpInfoAsync(ipam, updateClusterSdnIpamsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnIpamsSingle Update sdn ipam object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="ipam">ipam</param>
        /// <param name="updateClusterSdnIpamsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnIpamsSingleWithHttpInfoAsync(string ipam, UpdateClusterSdnIpamsSingleRequest updateClusterSdnIpamsSingleRequest = default(UpdateClusterSdnIpamsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'ipam' is set
            if (ipam == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'ipam' when calling ProxmoxGeneratedApi->UpdateClusterSdnIpamsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("ipam", ProxmoxSharp.Client.ClientUtils.ParameterToString(ipam)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnIpamsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnIpamsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/ipams/{ipam}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnIpamsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSdnVnetsSingleFirewallOptions(string vnet, UpdateClusterSdnVnetsSingleFirewallOptionsRequest updateClusterSdnVnetsSingleFirewallOptionsRequest = default(UpdateClusterSdnVnetsSingleFirewallOptionsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSdnVnetsSingleFirewallOptionsWithHttpInfo(vnet, updateClusterSdnVnetsSingleFirewallOptionsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleFirewallOptionsWithHttpInfo(string vnet, UpdateClusterSdnVnetsSingleFirewallOptionsRequest updateClusterSdnVnetsSingleFirewallOptionsRequest = default(UpdateClusterSdnVnetsSingleFirewallOptionsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleFirewallOptions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnVnetsSingleFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnVnetsSingleFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnVnetsSingleFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleFirewallOptionsAsync(string vnet, UpdateClusterSdnVnetsSingleFirewallOptionsRequest updateClusterSdnVnetsSingleFirewallOptionsRequest = default(UpdateClusterSdnVnetsSingleFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSdnVnetsSingleFirewallOptionsWithHttpInfoAsync(vnet, updateClusterSdnVnetsSingleFirewallOptionsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnVnetsSingleFirewallOptionsWithHttpInfoAsync(string vnet, UpdateClusterSdnVnetsSingleFirewallOptionsRequest updateClusterSdnVnetsSingleFirewallOptionsRequest = default(UpdateClusterSdnVnetsSingleFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleFirewallOptions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnVnetsSingleFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnVnetsSingleFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnVnetsSingleFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallRulesSingle Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSdnVnetsSingleFirewallRulesSingle(int pos, string vnet, UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest updateClusterSdnVnetsSingleFirewallRulesSingleRequest = default(UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(pos, vnet, updateClusterSdnVnetsSingleFirewallRulesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallRulesSingle Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfo(int pos, string vnet, UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest updateClusterSdnVnetsSingleFirewallRulesSingleRequest = default(UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleFirewallRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnVnetsSingleFirewallRulesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnVnetsSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnVnetsSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallRulesSingle Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleFirewallRulesSingleAsync(int pos, string vnet, UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest updateClusterSdnVnetsSingleFirewallRulesSingleRequest = default(UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(pos, vnet, updateClusterSdnVnetsSingleFirewallRulesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleFirewallRulesSingle Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pos">pos</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnVnetsSingleFirewallRulesSingleWithHttpInfoAsync(int pos, string vnet, UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest updateClusterSdnVnetsSingleFirewallRulesSingleRequest = default(UpdateClusterSdnVnetsSingleFirewallRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleFirewallRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnVnetsSingleFirewallRulesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnVnetsSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnVnetsSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleIps Update IP Mapping in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSdnVnetsSingleIps(string vnet, UpdateClusterSdnVnetsSingleIpsRequest updateClusterSdnVnetsSingleIpsRequest = default(UpdateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSdnVnetsSingleIpsWithHttpInfo(vnet, updateClusterSdnVnetsSingleIpsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleIps Update IP Mapping in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleIpsWithHttpInfo(string vnet, UpdateClusterSdnVnetsSingleIpsRequest updateClusterSdnVnetsSingleIpsRequest = default(UpdateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleIps");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnVnetsSingleIpsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnVnetsSingleIps";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/ips", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnVnetsSingleIps", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleIps Update IP Mapping in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleIpsAsync(string vnet, UpdateClusterSdnVnetsSingleIpsRequest updateClusterSdnVnetsSingleIpsRequest = default(UpdateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSdnVnetsSingleIpsWithHttpInfoAsync(vnet, updateClusterSdnVnetsSingleIpsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleIps Update IP Mapping in a VNet
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleIpsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnVnetsSingleIpsWithHttpInfoAsync(string vnet, UpdateClusterSdnVnetsSingleIpsRequest updateClusterSdnVnetsSingleIpsRequest = default(UpdateClusterSdnVnetsSingleIpsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleIps");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnVnetsSingleIpsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnVnetsSingleIps";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/ips", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnVnetsSingleIps", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleSubnetsSingle Update sdn subnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleSubnetsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateClusterSdnVnetsSingleSubnetsSingle(string subnet, string vnet, UpdateClusterSdnVnetsSingleSubnetsSingleRequest updateClusterSdnVnetsSingleSubnetsSingleRequest = default(UpdateClusterSdnVnetsSingleSubnetsSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(subnet, vnet, updateClusterSdnVnetsSingleSubnetsSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleSubnetsSingle Update sdn subnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleSubnetsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleSubnetsSingleWithHttpInfo(string subnet, string vnet, UpdateClusterSdnVnetsSingleSubnetsSingleRequest updateClusterSdnVnetsSingleSubnetsSingleRequest = default(UpdateClusterSdnVnetsSingleSubnetsSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'subnet' is set
            if (subnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'subnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleSubnetsSingle");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleSubnetsSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("subnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(subnet)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnVnetsSingleSubnetsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnVnetsSingleSubnetsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/subnets/{subnet}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnVnetsSingleSubnetsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleSubnetsSingle Update sdn subnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleSubnetsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateClusterSdnVnetsSingleSubnetsSingleAsync(string subnet, string vnet, UpdateClusterSdnVnetsSingleSubnetsSingleRequest updateClusterSdnVnetsSingleSubnetsSingleRequest = default(UpdateClusterSdnVnetsSingleSubnetsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(subnet, vnet, updateClusterSdnVnetsSingleSubnetsSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateClusterSdnVnetsSingleSubnetsSingle Update sdn subnet object configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="subnet">subnet</param>
        /// <param name="vnet">vnet</param>
        /// <param name="updateClusterSdnVnetsSingleSubnetsSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateClusterSdnVnetsSingleSubnetsSingleWithHttpInfoAsync(string subnet, string vnet, UpdateClusterSdnVnetsSingleSubnetsSingleRequest updateClusterSdnVnetsSingleSubnetsSingleRequest = default(UpdateClusterSdnVnetsSingleSubnetsSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'subnet' is set
            if (subnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'subnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleSubnetsSingle");
            }

            // verify the required parameter 'vnet' is set
            if (vnet == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'vnet' when calling ProxmoxGeneratedApi->UpdateClusterSdnVnetsSingleSubnetsSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("subnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(subnet)); // path parameter
            localVarRequestOptions.PathParameters.Add("vnet", ProxmoxSharp.Client.ClientUtils.ParameterToString(vnet)); // path parameter
            localVarRequestOptions.Data = updateClusterSdnVnetsSingleSubnetsSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateClusterSdnVnetsSingleSubnetsSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/cluster/sdn/vnets/{vnet}/subnets/{subnet}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClusterSdnVnetsSingleSubnetsSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodeFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodeFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodeFirewallOptions(string node, UpdateNodeFirewallOptionsRequest updateNodeFirewallOptionsRequest = default(UpdateNodeFirewallOptionsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodeFirewallOptionsWithHttpInfo(node, updateNodeFirewallOptionsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodeFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodeFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodeFirewallOptionsWithHttpInfo(string node, UpdateNodeFirewallOptionsRequest updateNodeFirewallOptionsRequest = default(UpdateNodeFirewallOptionsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodeFirewallOptions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodeFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodeFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodeFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodeFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodeFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodeFirewallOptionsAsync(string node, UpdateNodeFirewallOptionsRequest updateNodeFirewallOptionsRequest = default(UpdateNodeFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodeFirewallOptionsWithHttpInfoAsync(node, updateNodeFirewallOptionsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodeFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodeFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodeFirewallOptionsWithHttpInfoAsync(string node, UpdateNodeFirewallOptionsRequest updateNodeFirewallOptionsRequest = default(UpdateNodeFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodeFirewallOptions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodeFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodeFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodeFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodeFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="updateNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodeFirewallRule(string node, int pos, UpdateNodeFirewallRuleRequest updateNodeFirewallRuleRequest = default(UpdateNodeFirewallRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodeFirewallRuleWithHttpInfo(node, pos, updateNodeFirewallRuleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodeFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="updateNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodeFirewallRuleWithHttpInfo(string node, int pos, UpdateNodeFirewallRuleRequest updateNodeFirewallRuleRequest = default(UpdateNodeFirewallRuleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodeFirewallRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.Data = updateNodeFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodeFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodeFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodeFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="updateNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodeFirewallRuleAsync(string node, int pos, UpdateNodeFirewallRuleRequest updateNodeFirewallRuleRequest = default(UpdateNodeFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodeFirewallRuleWithHttpInfoAsync(node, pos, updateNodeFirewallRuleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodeFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="updateNodeFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodeFirewallRuleWithHttpInfoAsync(string node, int pos, UpdateNodeFirewallRuleRequest updateNodeFirewallRuleRequest = default(UpdateNodeFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodeFirewallRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.Data = updateNodeFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodeFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodeFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleAptRepositories Add a standard repository to the configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleAptRepositories(string node, UpdateNodesSingleAptRepositoriesRequest updateNodesSingleAptRepositoriesRequest = default(UpdateNodesSingleAptRepositoriesRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleAptRepositoriesWithHttpInfo(node, updateNodesSingleAptRepositoriesRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleAptRepositories Add a standard repository to the configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleAptRepositoriesWithHttpInfo(string node, UpdateNodesSingleAptRepositoriesRequest updateNodesSingleAptRepositoriesRequest = default(UpdateNodesSingleAptRepositoriesRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleAptRepositories");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleAptRepositoriesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleAptRepositories";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/apt/repositories", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleAptRepositories", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleAptRepositories Add a standard repository to the configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleAptRepositoriesAsync(string node, UpdateNodesSingleAptRepositoriesRequest updateNodesSingleAptRepositoriesRequest = default(UpdateNodesSingleAptRepositoriesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleAptRepositoriesWithHttpInfoAsync(node, updateNodesSingleAptRepositoriesRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleAptRepositories Add a standard repository to the configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleAptRepositoriesRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleAptRepositoriesWithHttpInfoAsync(string node, UpdateNodesSingleAptRepositoriesRequest updateNodesSingleAptRepositoriesRequest = default(UpdateNodesSingleAptRepositoriesRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleAptRepositories");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleAptRepositoriesRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleAptRepositories";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/apt/repositories", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleAptRepositories", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleCephPoolSingle Change POOL settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCephPoolSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleCephPoolSingle(string name, string node, UpdateNodesSingleCephPoolSingleRequest updateNodesSingleCephPoolSingleRequest = default(UpdateNodesSingleCephPoolSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleCephPoolSingleWithHttpInfo(name, node, updateNodesSingleCephPoolSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleCephPoolSingle Change POOL settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCephPoolSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleCephPoolSingleWithHttpInfo(string name, string node, UpdateNodesSingleCephPoolSingleRequest updateNodesSingleCephPoolSingleRequest = default(UpdateNodesSingleCephPoolSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateNodesSingleCephPoolSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleCephPoolSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleCephPoolSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleCephPoolSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/ceph/pool/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleCephPoolSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleCephPoolSingle Change POOL settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCephPoolSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleCephPoolSingleAsync(string name, string node, UpdateNodesSingleCephPoolSingleRequest updateNodesSingleCephPoolSingleRequest = default(UpdateNodesSingleCephPoolSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleCephPoolSingleWithHttpInfoAsync(name, node, updateNodesSingleCephPoolSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleCephPoolSingle Change POOL settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCephPoolSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleCephPoolSingleWithHttpInfoAsync(string name, string node, UpdateNodesSingleCephPoolSingleRequest updateNodesSingleCephPoolSingleRequest = default(UpdateNodesSingleCephPoolSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateNodesSingleCephPoolSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleCephPoolSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleCephPoolSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleCephPoolSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/ceph/pool/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleCephPoolSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleCertificatesAcmeCertificate Renew existing certificate from CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleCertificatesAcmeCertificate(string node, UpdateNodesSingleCertificatesAcmeCertificateRequest updateNodesSingleCertificatesAcmeCertificateRequest = default(UpdateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleCertificatesAcmeCertificateWithHttpInfo(node, updateNodesSingleCertificatesAcmeCertificateRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleCertificatesAcmeCertificate Renew existing certificate from CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleCertificatesAcmeCertificateWithHttpInfo(string node, UpdateNodesSingleCertificatesAcmeCertificateRequest updateNodesSingleCertificatesAcmeCertificateRequest = default(UpdateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleCertificatesAcmeCertificate");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleCertificatesAcmeCertificateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleCertificatesAcmeCertificate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/certificates/acme/certificate", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleCertificatesAcmeCertificate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleCertificatesAcmeCertificate Renew existing certificate from CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleCertificatesAcmeCertificateAsync(string node, UpdateNodesSingleCertificatesAcmeCertificateRequest updateNodesSingleCertificatesAcmeCertificateRequest = default(UpdateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(node, updateNodesSingleCertificatesAcmeCertificateRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleCertificatesAcmeCertificate Renew existing certificate from CA.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleCertificatesAcmeCertificateRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleCertificatesAcmeCertificateWithHttpInfoAsync(string node, UpdateNodesSingleCertificatesAcmeCertificateRequest updateNodesSingleCertificatesAcmeCertificateRequest = default(UpdateNodesSingleCertificatesAcmeCertificateRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleCertificatesAcmeCertificate");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleCertificatesAcmeCertificateRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleCertificatesAcmeCertificate";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/certificates/acme/certificate", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleCertificatesAcmeCertificate", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleConfig Set node configuration options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleConfig(string node, UpdateNodesSingleConfigRequest updateNodesSingleConfigRequest = default(UpdateNodesSingleConfigRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleConfigWithHttpInfo(node, updateNodesSingleConfigRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleConfig Set node configuration options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleConfigWithHttpInfo(string node, UpdateNodesSingleConfigRequest updateNodesSingleConfigRequest = default(UpdateNodesSingleConfigRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleConfig Set node configuration options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleConfigAsync(string node, UpdateNodesSingleConfigRequest updateNodesSingleConfigRequest = default(UpdateNodesSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleConfigWithHttpInfoAsync(node, updateNodesSingleConfigRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleConfig Set node configuration options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleConfigWithHttpInfoAsync(string node, UpdateNodesSingleConfigRequest updateNodesSingleConfigRequest = default(UpdateNodesSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleDisksWipedisk Wipe a disk or partition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDisksWipediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleDisksWipedisk(string node, UpdateNodesSingleDisksWipediskRequest updateNodesSingleDisksWipediskRequest = default(UpdateNodesSingleDisksWipediskRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleDisksWipediskWithHttpInfo(node, updateNodesSingleDisksWipediskRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleDisksWipedisk Wipe a disk or partition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDisksWipediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleDisksWipediskWithHttpInfo(string node, UpdateNodesSingleDisksWipediskRequest updateNodesSingleDisksWipediskRequest = default(UpdateNodesSingleDisksWipediskRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleDisksWipedisk");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleDisksWipediskRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleDisksWipedisk";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/disks/wipedisk", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleDisksWipedisk", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleDisksWipedisk Wipe a disk or partition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDisksWipediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleDisksWipediskAsync(string node, UpdateNodesSingleDisksWipediskRequest updateNodesSingleDisksWipediskRequest = default(UpdateNodesSingleDisksWipediskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleDisksWipediskWithHttpInfoAsync(node, updateNodesSingleDisksWipediskRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleDisksWipedisk Wipe a disk or partition.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDisksWipediskRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleDisksWipediskWithHttpInfoAsync(string node, UpdateNodesSingleDisksWipediskRequest updateNodesSingleDisksWipediskRequest = default(UpdateNodesSingleDisksWipediskRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleDisksWipedisk");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleDisksWipediskRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleDisksWipedisk";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/disks/wipedisk", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleDisksWipedisk", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleDns Write DNS settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleDns(string node, UpdateNodesSingleDnsRequest updateNodesSingleDnsRequest = default(UpdateNodesSingleDnsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleDnsWithHttpInfo(node, updateNodesSingleDnsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleDns Write DNS settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleDnsWithHttpInfo(string node, UpdateNodesSingleDnsRequest updateNodesSingleDnsRequest = default(UpdateNodesSingleDnsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleDns");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleDnsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleDns";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/dns", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleDns", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleDns Write DNS settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleDnsAsync(string node, UpdateNodesSingleDnsRequest updateNodesSingleDnsRequest = default(UpdateNodesSingleDnsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleDnsWithHttpInfoAsync(node, updateNodesSingleDnsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleDns Write DNS settings.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleDnsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleDnsWithHttpInfoAsync(string node, UpdateNodesSingleDnsRequest updateNodesSingleDnsRequest = default(UpdateNodesSingleDnsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleDns");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleDnsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleDns";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/dns", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleDns", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleConfig Set container options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleLxcSingleConfig(string node, int vmid, UpdateNodesSingleLxcSingleConfigRequest updateNodesSingleLxcSingleConfigRequest = default(UpdateNodesSingleLxcSingleConfigRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleLxcSingleConfigWithHttpInfo(node, vmid, updateNodesSingleLxcSingleConfigRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleConfig Set container options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleConfigWithHttpInfo(string node, int vmid, UpdateNodesSingleLxcSingleConfigRequest updateNodesSingleLxcSingleConfigRequest = default(UpdateNodesSingleLxcSingleConfigRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleConfig Set container options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleConfigAsync(string node, int vmid, UpdateNodesSingleLxcSingleConfigRequest updateNodesSingleLxcSingleConfigRequest = default(UpdateNodesSingleLxcSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleLxcSingleConfigWithHttpInfoAsync(node, vmid, updateNodesSingleLxcSingleConfigRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleConfig Set container options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleConfigWithHttpInfoAsync(string node, int vmid, UpdateNodesSingleLxcSingleConfigRequest updateNodesSingleLxcSingleConfigRequest = default(UpdateNodesSingleLxcSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleLxcSingleFirewallAliasesSingle(string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest updateNodesSingleLxcSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(name, node, vmid, updateNodesSingleLxcSingleFirewallAliasesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest updateNodesSingleLxcSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleFirewallAliasesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallAliasesSingleAsync(string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest updateNodesSingleLxcSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(name, node, vmid, updateNodesSingleLxcSingleFirewallAliasesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest updateNodesSingleLxcSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleFirewallAliasesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallIpsetSingleSingle Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle(string cidr, string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest = default(UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(cidr, name, node, vmid, updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallIpsetSingleSingle Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfo(string cidr, string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest = default(UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallIpsetSingleSingle Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleAsync(string cidr, string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest = default(UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(cidr, name, node, vmid, updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallIpsetSingleSingle Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleWithHttpInfoAsync(string cidr, string name, string node, int vmid, UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest = default(UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleFirewallIpsetSingleSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleLxcSingleFirewallOptions(string node, int vmid, UpdateNodesSingleLxcSingleFirewallOptionsRequest updateNodesSingleLxcSingleFirewallOptionsRequest = default(UpdateNodesSingleLxcSingleFirewallOptionsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleLxcSingleFirewallOptionsWithHttpInfo(node, vmid, updateNodesSingleLxcSingleFirewallOptionsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallOptionsWithHttpInfo(string node, int vmid, UpdateNodesSingleLxcSingleFirewallOptionsRequest updateNodesSingleLxcSingleFirewallOptionsRequest = default(UpdateNodesSingleLxcSingleFirewallOptionsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallOptions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallOptionsAsync(string node, int vmid, UpdateNodesSingleLxcSingleFirewallOptionsRequest updateNodesSingleLxcSingleFirewallOptionsRequest = default(UpdateNodesSingleLxcSingleFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleLxcSingleFirewallOptionsWithHttpInfoAsync(node, vmid, updateNodesSingleLxcSingleFirewallOptionsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleFirewallOptionsWithHttpInfoAsync(string node, int vmid, UpdateNodesSingleLxcSingleFirewallOptionsRequest updateNodesSingleLxcSingleFirewallOptionsRequest = default(UpdateNodesSingleLxcSingleFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallOptions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallRulesSingle Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleLxcSingleFirewallRulesSingle(string node, int pos, int vmid, UpdateNodesSingleLxcSingleFirewallRulesSingleRequest updateNodesSingleLxcSingleFirewallRulesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallRulesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(node, pos, vmid, updateNodesSingleLxcSingleFirewallRulesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallRulesSingle Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallRulesSingleWithHttpInfo(string node, int pos, int vmid, UpdateNodesSingleLxcSingleFirewallRulesSingleRequest updateNodesSingleLxcSingleFirewallRulesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallRulesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallRulesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleFirewallRulesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallRulesSingle Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleFirewallRulesSingleAsync(string node, int pos, int vmid, UpdateNodesSingleLxcSingleFirewallRulesSingleRequest updateNodesSingleLxcSingleFirewallRulesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(node, pos, vmid, updateNodesSingleLxcSingleFirewallRulesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleFirewallRulesSingle Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleFirewallRulesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleFirewallRulesSingleWithHttpInfoAsync(string node, int pos, int vmid, UpdateNodesSingleLxcSingleFirewallRulesSingleRequest updateNodesSingleLxcSingleFirewallRulesSingleRequest = default(UpdateNodesSingleLxcSingleFirewallRulesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleFirewallRulesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleFirewallRulesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleFirewallRulesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleFirewallRulesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleResize Resize a container mount point.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleResizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public CreateNodesSingleQemuSingleMovedisk200Response UpdateNodesSingleLxcSingleResize(string node, int vmid, UpdateNodesSingleLxcSingleResizeRequest updateNodesSingleLxcSingleResizeRequest = default(UpdateNodesSingleLxcSingleResizeRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = UpdateNodesSingleLxcSingleResizeWithHttpInfo(node, vmid, updateNodesSingleLxcSingleResizeRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleResize Resize a container mount point.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleResizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> UpdateNodesSingleLxcSingleResizeWithHttpInfo(string node, int vmid, UpdateNodesSingleLxcSingleResizeRequest updateNodesSingleLxcSingleResizeRequest = default(UpdateNodesSingleLxcSingleResizeRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleResize");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleResizeRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleResize";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/resize", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleResize", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleResize Resize a container mount point.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleResizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateNodesSingleQemuSingleMovedisk200Response</returns>
        public async System.Threading.Tasks.Task<CreateNodesSingleQemuSingleMovedisk200Response> UpdateNodesSingleLxcSingleResizeAsync(string node, int vmid, UpdateNodesSingleLxcSingleResizeRequest updateNodesSingleLxcSingleResizeRequest = default(UpdateNodesSingleLxcSingleResizeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response> localVarResponse = await UpdateNodesSingleLxcSingleResizeWithHttpInfoAsync(node, vmid, updateNodesSingleLxcSingleResizeRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleResize Resize a container mount point.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleResizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateNodesSingleQemuSingleMovedisk200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateNodesSingleQemuSingleMovedisk200Response>> UpdateNodesSingleLxcSingleResizeWithHttpInfoAsync(string node, int vmid, UpdateNodesSingleLxcSingleResizeRequest updateNodesSingleLxcSingleResizeRequest = default(UpdateNodesSingleLxcSingleResizeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleResize");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleResizeRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleResize";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateNodesSingleQemuSingleMovedisk200Response>("/nodes/{node}/lxc/{vmid}/resize", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleResize", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleSnapshotSingleConfig Update snapshot metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleSnapshotSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleLxcSingleSnapshotSingleConfig(string node, string snapname, int vmid, UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest updateNodesSingleLxcSingleSnapshotSingleConfigRequest = default(UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfo(node, snapname, vmid, updateNodesSingleLxcSingleSnapshotSingleConfigRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleSnapshotSingleConfig Update snapshot metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleSnapshotSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfo(string node, string snapname, int vmid, UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest updateNodesSingleLxcSingleSnapshotSingleConfigRequest = default(UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleSnapshotSingleConfig");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleSnapshotSingleConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleSnapshotSingleConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleSnapshotSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleSnapshotSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleSnapshotSingleConfig Update snapshot metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleSnapshotSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleLxcSingleSnapshotSingleConfigAsync(string node, string snapname, int vmid, UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest updateNodesSingleLxcSingleSnapshotSingleConfigRequest = default(UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfoAsync(node, snapname, vmid, updateNodesSingleLxcSingleSnapshotSingleConfigRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleLxcSingleSnapshotSingleConfig Update snapshot metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleLxcSingleSnapshotSingleConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleLxcSingleSnapshotSingleConfigWithHttpInfoAsync(string node, string snapname, int vmid, UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest updateNodesSingleLxcSingleSnapshotSingleConfigRequest = default(UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleSnapshotSingleConfig");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->UpdateNodesSingleLxcSingleSnapshotSingleConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleLxcSingleSnapshotSingleConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleLxcSingleSnapshotSingleConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleLxcSingleSnapshotSingleConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleNetwork Reload network configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleNetwork(string node, UpdateNodesSingleNetworkRequest updateNodesSingleNetworkRequest = default(UpdateNodesSingleNetworkRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleNetworkWithHttpInfo(node, updateNodesSingleNetworkRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleNetwork Reload network configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleNetworkWithHttpInfo(string node, UpdateNodesSingleNetworkRequest updateNodesSingleNetworkRequest = default(UpdateNodesSingleNetworkRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleNetwork");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleNetworkRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleNetwork";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/network", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleNetwork", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleNetwork Reload network configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleNetworkAsync(string node, UpdateNodesSingleNetworkRequest updateNodesSingleNetworkRequest = default(UpdateNodesSingleNetworkRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleNetworkWithHttpInfoAsync(node, updateNodesSingleNetworkRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleNetwork Reload network configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleNetworkWithHttpInfoAsync(string node, UpdateNodesSingleNetworkRequest updateNodesSingleNetworkRequest = default(UpdateNodesSingleNetworkRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleNetwork");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleNetworkRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleNetwork";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/network", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleNetwork", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleNetworkSingle Update network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleNetworkSingle(string iface, string node, UpdateNodesSingleNetworkSingleRequest updateNodesSingleNetworkSingleRequest = default(UpdateNodesSingleNetworkSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleNetworkSingleWithHttpInfo(iface, node, updateNodesSingleNetworkSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleNetworkSingle Update network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleNetworkSingleWithHttpInfo(string iface, string node, UpdateNodesSingleNetworkSingleRequest updateNodesSingleNetworkSingleRequest = default(UpdateNodesSingleNetworkSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'iface' is set
            if (iface == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'iface' when calling ProxmoxGeneratedApi->UpdateNodesSingleNetworkSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleNetworkSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("iface", ProxmoxSharp.Client.ClientUtils.ParameterToString(iface)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleNetworkSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleNetworkSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/network/{iface}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleNetworkSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleNetworkSingle Update network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleNetworkSingleAsync(string iface, string node, UpdateNodesSingleNetworkSingleRequest updateNodesSingleNetworkSingleRequest = default(UpdateNodesSingleNetworkSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleNetworkSingleWithHttpInfoAsync(iface, node, updateNodesSingleNetworkSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleNetworkSingle Update network device configuration
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="iface">iface</param>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleNetworkSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleNetworkSingleWithHttpInfoAsync(string iface, string node, UpdateNodesSingleNetworkSingleRequest updateNodesSingleNetworkSingleRequest = default(UpdateNodesSingleNetworkSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'iface' is set
            if (iface == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'iface' when calling ProxmoxGeneratedApi->UpdateNodesSingleNetworkSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleNetworkSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("iface", ProxmoxSharp.Client.ClientUtils.ParameterToString(iface)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleNetworkSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleNetworkSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/network/{iface}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleNetworkSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleCloudinit Regenerate and change cloudinit config drive.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleQemuSingleCloudinit(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleQemuSingleCloudinitWithHttpInfo(node, vmid, body);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleCloudinit Regenerate and change cloudinit config drive.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleCloudinitWithHttpInfo(string node, int vmid, Object body = default(Object), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleQemuSingleCloudinit");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleQemuSingleCloudinit";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/cloudinit", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleQemuSingleCloudinit", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleCloudinit Regenerate and change cloudinit config drive.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleCloudinitAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleQemuSingleCloudinitWithHttpInfoAsync(node, vmid, body, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleCloudinit Regenerate and change cloudinit config drive.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleQemuSingleCloudinitWithHttpInfoAsync(string node, int vmid, Object body = default(Object), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleQemuSingleCloudinit");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleQemuSingleCloudinit";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/cloudinit", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleQemuSingleCloudinit", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleQemuSingleFirewallAliasesSingle(string name, string node, int vmid, UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest updateNodesSingleQemuSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(name, node, vmid, updateNodesSingleQemuSingleFirewallAliasesSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfo(string name, string node, int vmid, UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest updateNodesSingleQemuSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateNodesSingleQemuSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleQemuSingleFirewallAliasesSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleQemuSingleFirewallAliasesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleQemuSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleQemuSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleFirewallAliasesSingleAsync(string name, string node, int vmid, UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest updateNodesSingleQemuSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(name, node, vmid, updateNodesSingleQemuSingleFirewallAliasesSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleFirewallAliasesSingle Update IP or Network alias.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleFirewallAliasesSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleQemuSingleFirewallAliasesSingleWithHttpInfoAsync(string name, string node, int vmid, UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest updateNodesSingleQemuSingleFirewallAliasesSingleRequest = default(UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateNodesSingleQemuSingleFirewallAliasesSingle");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleQemuSingleFirewallAliasesSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleQemuSingleFirewallAliasesSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleQemuSingleFirewallAliasesSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleQemuSingleFirewallAliasesSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleSendkey Send key event to virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleSendkeyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleQemuSingleSendkey(string node, int vmid, UpdateNodesSingleQemuSingleSendkeyRequest updateNodesSingleQemuSingleSendkeyRequest = default(UpdateNodesSingleQemuSingleSendkeyRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleQemuSingleSendkeyWithHttpInfo(node, vmid, updateNodesSingleQemuSingleSendkeyRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleSendkey Send key event to virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleSendkeyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleSendkeyWithHttpInfo(string node, int vmid, UpdateNodesSingleQemuSingleSendkeyRequest updateNodesSingleQemuSingleSendkeyRequest = default(UpdateNodesSingleQemuSingleSendkeyRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleQemuSingleSendkey");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleQemuSingleSendkeyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleQemuSingleSendkey";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/sendkey", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleQemuSingleSendkey", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleSendkey Send key event to virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleSendkeyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleQemuSingleSendkeyAsync(string node, int vmid, UpdateNodesSingleQemuSingleSendkeyRequest updateNodesSingleQemuSingleSendkeyRequest = default(UpdateNodesSingleQemuSingleSendkeyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleQemuSingleSendkeyWithHttpInfoAsync(node, vmid, updateNodesSingleQemuSingleSendkeyRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleQemuSingleSendkey Send key event to virtual machine.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateNodesSingleQemuSingleSendkeyRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleQemuSingleSendkeyWithHttpInfoAsync(string node, int vmid, UpdateNodesSingleQemuSingleSendkeyRequest updateNodesSingleQemuSingleSendkeyRequest = default(UpdateNodesSingleQemuSingleSendkeyRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleQemuSingleSendkey");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleQemuSingleSendkeyRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleQemuSingleSendkey";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/sendkey", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleQemuSingleSendkey", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleStorageSingleContentSingle Update volume attributes
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="updateNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleStorageSingleContentSingle(string node, string storage, string volume, UpdateNodesSingleStorageSingleContentSingleRequest updateNodesSingleStorageSingleContentSingleRequest = default(UpdateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleStorageSingleContentSingleWithHttpInfo(node, storage, volume, updateNodesSingleStorageSingleContentSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleStorageSingleContentSingle Update volume attributes
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="updateNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleStorageSingleContentSingleWithHttpInfo(string node, string storage, string volume, UpdateNodesSingleStorageSingleContentSingleRequest updateNodesSingleStorageSingleContentSingleRequest = default(UpdateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->UpdateNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'volume' is set
            if (volume == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'volume' when calling ProxmoxGeneratedApi->UpdateNodesSingleStorageSingleContentSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.PathParameters.Add("volume", ProxmoxSharp.Client.ClientUtils.ParameterToString(volume)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleStorageSingleContentSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleStorageSingleContentSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/content/{volume}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleStorageSingleContentSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleStorageSingleContentSingle Update volume attributes
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="updateNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleStorageSingleContentSingleAsync(string node, string storage, string volume, UpdateNodesSingleStorageSingleContentSingleRequest updateNodesSingleStorageSingleContentSingleRequest = default(UpdateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleStorageSingleContentSingleWithHttpInfoAsync(node, storage, volume, updateNodesSingleStorageSingleContentSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleStorageSingleContentSingle Update volume attributes
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="storage">storage</param>
        /// <param name="volume">volume</param>
        /// <param name="updateNodesSingleStorageSingleContentSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleStorageSingleContentSingleWithHttpInfoAsync(string node, string storage, string volume, UpdateNodesSingleStorageSingleContentSingleRequest updateNodesSingleStorageSingleContentSingleRequest = default(UpdateNodesSingleStorageSingleContentSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->UpdateNodesSingleStorageSingleContentSingle");
            }

            // verify the required parameter 'volume' is set
            if (volume == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'volume' when calling ProxmoxGeneratedApi->UpdateNodesSingleStorageSingleContentSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.PathParameters.Add("volume", ProxmoxSharp.Client.ClientUtils.ParameterToString(volume)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleStorageSingleContentSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleStorageSingleContentSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/storage/{storage}/content/{volume}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleStorageSingleContentSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleSubscription Set subscription key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleSubscription(string node, UpdateNodesSingleSubscriptionRequest updateNodesSingleSubscriptionRequest = default(UpdateNodesSingleSubscriptionRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleSubscriptionWithHttpInfo(node, updateNodesSingleSubscriptionRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleSubscription Set subscription key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleSubscriptionWithHttpInfo(string node, UpdateNodesSingleSubscriptionRequest updateNodesSingleSubscriptionRequest = default(UpdateNodesSingleSubscriptionRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleSubscription");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleSubscriptionRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleSubscription";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/subscription", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleSubscription", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleSubscription Set subscription key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleSubscriptionAsync(string node, UpdateNodesSingleSubscriptionRequest updateNodesSingleSubscriptionRequest = default(UpdateNodesSingleSubscriptionRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleSubscriptionWithHttpInfoAsync(node, updateNodesSingleSubscriptionRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleSubscription Set subscription key.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleSubscriptionRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleSubscriptionWithHttpInfoAsync(string node, UpdateNodesSingleSubscriptionRequest updateNodesSingleSubscriptionRequest = default(UpdateNodesSingleSubscriptionRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleSubscription");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleSubscriptionRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleSubscription";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/subscription", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleSubscription", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleTime Set time zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleTimeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateNodesSingleTime(string node, UpdateNodesSingleTimeRequest updateNodesSingleTimeRequest = default(UpdateNodesSingleTimeRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateNodesSingleTimeWithHttpInfo(node, updateNodesSingleTimeRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleTime Set time zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleTimeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateNodesSingleTimeWithHttpInfo(string node, UpdateNodesSingleTimeRequest updateNodesSingleTimeRequest = default(UpdateNodesSingleTimeRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleTime");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleTimeRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleTime";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/time", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleTime", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateNodesSingleTime Set time zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleTimeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateNodesSingleTimeAsync(string node, UpdateNodesSingleTimeRequest updateNodesSingleTimeRequest = default(UpdateNodesSingleTimeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateNodesSingleTimeWithHttpInfoAsync(node, updateNodesSingleTimeRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateNodesSingleTime Set time zone.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="updateNodesSingleTimeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateNodesSingleTimeWithHttpInfoAsync(string node, UpdateNodesSingleTimeRequest updateNodesSingleTimeRequest = default(UpdateNodesSingleTimeRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateNodesSingleTime");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.Data = updateNodesSingleTimeRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateNodesSingleTime";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/time", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateNodesSingleTime", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updatePool Update pool data (deprecated, no support for nested pools - use &#39;PUT /pools/?poolid&#x3D;{poolid}&#39; instead).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="updatePoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdatePool(string poolid, UpdatePoolRequest updatePoolRequest = default(UpdatePoolRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdatePoolWithHttpInfo(poolid, updatePoolRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updatePool Update pool data (deprecated, no support for nested pools - use &#39;PUT /pools/?poolid&#x3D;{poolid}&#39; instead).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="updatePoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdatePoolWithHttpInfo(string poolid, UpdatePoolRequest updatePoolRequest = default(UpdatePoolRequest), int operationIndex = 0)
        {
            // verify the required parameter 'poolid' is set
            if (poolid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'poolid' when calling ProxmoxGeneratedApi->UpdatePool");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("poolid", ProxmoxSharp.Client.ClientUtils.ParameterToString(poolid)); // path parameter
            localVarRequestOptions.Data = updatePoolRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdatePool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/pools/{poolid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdatePool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updatePool Update pool data (deprecated, no support for nested pools - use &#39;PUT /pools/?poolid&#x3D;{poolid}&#39; instead).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="updatePoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdatePoolAsync(string poolid, UpdatePoolRequest updatePoolRequest = default(UpdatePoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdatePoolWithHttpInfoAsync(poolid, updatePoolRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updatePool Update pool data (deprecated, no support for nested pools - use &#39;PUT /pools/?poolid&#x3D;{poolid}&#39; instead).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="poolid">poolid</param>
        /// <param name="updatePoolRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdatePoolWithHttpInfoAsync(string poolid, UpdatePoolRequest updatePoolRequest = default(UpdatePoolRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'poolid' is set
            if (poolid == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'poolid' when calling ProxmoxGeneratedApi->UpdatePool");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("poolid", ProxmoxSharp.Client.ClientUtils.ParameterToString(poolid)); // path parameter
            localVarRequestOptions.Data = updatePoolRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdatePool";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/pools/{poolid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdatePool", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updatePools Update pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updatePoolsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdatePools(UpdatePoolsRequest updatePoolsRequest = default(UpdatePoolsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdatePoolsWithHttpInfo(updatePoolsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updatePools Update pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updatePoolsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdatePoolsWithHttpInfo(UpdatePoolsRequest updatePoolsRequest = default(UpdatePoolsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updatePoolsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdatePools";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/pools", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdatePools", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updatePools Update pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updatePoolsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdatePoolsAsync(UpdatePoolsRequest updatePoolsRequest = default(UpdatePoolsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdatePoolsWithHttpInfoAsync(updatePoolsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updatePools Update pool.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="updatePoolsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdatePoolsWithHttpInfoAsync(UpdatePoolsRequest updatePoolsRequest = default(UpdatePoolsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = updatePoolsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdatePools";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/pools", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdatePools", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateStorageSingle Update storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="updateStorageSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateStorage200Response</returns>
        public CreateStorage200Response UpdateStorageSingle(string storage, UpdateStorageSingleRequest updateStorageSingleRequest = default(UpdateStorageSingleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateStorage200Response> localVarResponse = UpdateStorageSingleWithHttpInfo(storage, updateStorageSingleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateStorageSingle Update storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="updateStorageSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateStorage200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateStorage200Response> UpdateStorageSingleWithHttpInfo(string storage, UpdateStorageSingleRequest updateStorageSingleRequest = default(UpdateStorageSingleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->UpdateStorageSingle");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = updateStorageSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateStorageSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateStorage200Response>("/storage/{storage}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateStorageSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateStorageSingle Update storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="updateStorageSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateStorage200Response</returns>
        public async System.Threading.Tasks.Task<CreateStorage200Response> UpdateStorageSingleAsync(string storage, UpdateStorageSingleRequest updateStorageSingleRequest = default(UpdateStorageSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateStorage200Response> localVarResponse = await UpdateStorageSingleWithHttpInfoAsync(storage, updateStorageSingleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateStorageSingle Update storage configuration.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="storage">storage</param>
        /// <param name="updateStorageSingleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateStorage200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateStorage200Response>> UpdateStorageSingleWithHttpInfoAsync(string storage, UpdateStorageSingleRequest updateStorageSingleRequest = default(UpdateStorageSingleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'storage' is set
            if (storage == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'storage' when calling ProxmoxGeneratedApi->UpdateStorageSingle");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("storage", ProxmoxSharp.Client.ClientUtils.ParameterToString(storage)); // path parameter
            localVarRequestOptions.Data = updateStorageSingleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateStorageSingle";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateStorage200Response>("/storage/{storage}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateStorageSingle", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMConfig Set virtual machine options (asynchronous API).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateVMConfig(string node, int vmid, UpdateVMConfigRequest updateVMConfigRequest = default(UpdateVMConfigRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateVMConfigWithHttpInfo(node, vmid, updateVMConfigRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMConfig Set virtual machine options (asynchronous API).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateVMConfigWithHttpInfo(string node, int vmid, UpdateVMConfigRequest updateVMConfigRequest = default(UpdateVMConfigRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Post<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMConfig Set virtual machine options (asynchronous API).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMConfigAsync(string node, int vmid, UpdateVMConfigRequest updateVMConfigRequest = default(UpdateVMConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateVMConfigWithHttpInfoAsync(node, vmid, updateVMConfigRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMConfig Set virtual machine options (asynchronous API).
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateVMConfigWithHttpInfoAsync(string node, int vmid, UpdateVMConfigRequest updateVMConfigRequest = default(UpdateVMConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMConfigSync Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateVMConfigSync(string node, int vmid, UpdateVMConfigSyncRequest updateVMConfigSyncRequest = default(UpdateVMConfigSyncRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateVMConfigSyncWithHttpInfo(node, vmid, updateVMConfigSyncRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMConfigSync Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateVMConfigSyncWithHttpInfo(string node, int vmid, UpdateVMConfigSyncRequest updateVMConfigSyncRequest = default(UpdateVMConfigSyncRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMConfigSync");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMConfigSyncRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMConfigSync";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMConfigSync", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMConfigSync Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMConfigSyncAsync(string node, int vmid, UpdateVMConfigSyncRequest updateVMConfigSyncRequest = default(UpdateVMConfigSyncRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateVMConfigSyncWithHttpInfoAsync(node, vmid, updateVMConfigSyncRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMConfigSync Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMConfigSyncRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateVMConfigSyncWithHttpInfoAsync(string node, int vmid, UpdateVMConfigSyncRequest updateVMConfigSyncRequest = default(UpdateVMConfigSyncRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMConfigSync");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMConfigSyncRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMConfigSync";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMConfigSync", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMFirewallIPSetIP Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateVMFirewallIPSetIP(string cidr, string name, string node, int vmid, UpdateVMFirewallIPSetIPRequest updateVMFirewallIPSetIPRequest = default(UpdateVMFirewallIPSetIPRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateVMFirewallIPSetIPWithHttpInfo(cidr, name, node, vmid, updateVMFirewallIPSetIPRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMFirewallIPSetIP Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateVMFirewallIPSetIPWithHttpInfo(string cidr, string name, string node, int vmid, UpdateVMFirewallIPSetIPRequest updateVMFirewallIPSetIPRequest = default(UpdateVMFirewallIPSetIPRequest), int operationIndex = 0)
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->UpdateVMFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateVMFirewallIPSetIP");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMFirewallIPSetIP");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMFirewallIPSetIPRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMFirewallIPSetIP Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMFirewallIPSetIPAsync(string cidr, string name, string node, int vmid, UpdateVMFirewallIPSetIPRequest updateVMFirewallIPSetIPRequest = default(UpdateVMFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateVMFirewallIPSetIPWithHttpInfoAsync(cidr, name, node, vmid, updateVMFirewallIPSetIPRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMFirewallIPSetIP Update IP or Network settings
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cidr">cidr</param>
        /// <param name="name">name</param>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallIPSetIPRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateVMFirewallIPSetIPWithHttpInfoAsync(string cidr, string name, string node, int vmid, UpdateVMFirewallIPSetIPRequest updateVMFirewallIPSetIPRequest = default(UpdateVMFirewallIPSetIPRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'cidr' is set
            if (cidr == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'cidr' when calling ProxmoxGeneratedApi->UpdateVMFirewallIPSetIP");
            }

            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'name' when calling ProxmoxGeneratedApi->UpdateVMFirewallIPSetIP");
            }

            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMFirewallIPSetIP");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("cidr", ProxmoxSharp.Client.ClientUtils.ParameterToString(cidr)); // path parameter
            localVarRequestOptions.PathParameters.Add("name", ProxmoxSharp.Client.ClientUtils.ParameterToString(name)); // path parameter
            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMFirewallIPSetIPRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMFirewallIPSetIP";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMFirewallIPSetIP", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateVMFirewallOptions(string node, int vmid, UpdateVMFirewallOptionsRequest updateVMFirewallOptionsRequest = default(UpdateVMFirewallOptionsRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateVMFirewallOptionsWithHttpInfo(node, vmid, updateVMFirewallOptionsRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateVMFirewallOptionsWithHttpInfo(string node, int vmid, UpdateVMFirewallOptionsRequest updateVMFirewallOptionsRequest = default(UpdateVMFirewallOptionsRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMFirewallOptions");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/options", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMFirewallOptionsAsync(string node, int vmid, UpdateVMFirewallOptionsRequest updateVMFirewallOptionsRequest = default(UpdateVMFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateVMFirewallOptionsWithHttpInfoAsync(node, vmid, updateVMFirewallOptionsRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMFirewallOptions Set Firewall options.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallOptionsRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateVMFirewallOptionsWithHttpInfoAsync(string node, int vmid, UpdateVMFirewallOptionsRequest updateVMFirewallOptionsRequest = default(UpdateVMFirewallOptionsRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMFirewallOptions");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMFirewallOptionsRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMFirewallOptions";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/options", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMFirewallOptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateVMFirewallRule(string node, int pos, int vmid, UpdateVMFirewallRuleRequest updateVMFirewallRuleRequest = default(UpdateVMFirewallRuleRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateVMFirewallRuleWithHttpInfo(node, pos, vmid, updateVMFirewallRuleRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateVMFirewallRuleWithHttpInfo(string node, int pos, int vmid, UpdateVMFirewallRuleRequest updateVMFirewallRuleRequest = default(UpdateVMFirewallRuleRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMFirewallRule");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMFirewallRuleAsync(string node, int pos, int vmid, UpdateVMFirewallRuleRequest updateVMFirewallRuleRequest = default(UpdateVMFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateVMFirewallRuleWithHttpInfoAsync(node, pos, vmid, updateVMFirewallRuleRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMFirewallRule Modify rule data.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="pos">pos</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMFirewallRuleRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateVMFirewallRuleWithHttpInfoAsync(string node, int pos, int vmid, UpdateVMFirewallRuleRequest updateVMFirewallRuleRequest = default(UpdateVMFirewallRuleRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMFirewallRule");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("pos", ProxmoxSharp.Client.ClientUtils.ParameterToString(pos)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMFirewallRuleRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMFirewallRule";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMFirewallRule", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMSnapshotConfig Update snapshot metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMSnapshotConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CreateClusterReplication200Response</returns>
        public CreateClusterReplication200Response UpdateVMSnapshotConfig(string node, string snapname, int vmid, UpdateVMSnapshotConfigRequest updateVMSnapshotConfigRequest = default(UpdateVMSnapshotConfigRequest), int operationIndex = 0)
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = UpdateVMSnapshotConfigWithHttpInfo(node, snapname, vmid, updateVMSnapshotConfigRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMSnapshotConfig Update snapshot metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMSnapshotConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CreateClusterReplication200Response</returns>
        public ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> UpdateVMSnapshotConfigWithHttpInfo(string node, string snapname, int vmid, UpdateVMSnapshotConfigRequest updateVMSnapshotConfigRequest = default(UpdateVMSnapshotConfigRequest), int operationIndex = 0)
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMSnapshotConfig");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->UpdateVMSnapshotConfig");
            }

            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMSnapshotConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMSnapshotConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = this.Client.Put<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMSnapshotConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// updateVMSnapshotConfig Update snapshot metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMSnapshotConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CreateClusterReplication200Response</returns>
        public async System.Threading.Tasks.Task<CreateClusterReplication200Response> UpdateVMSnapshotConfigAsync(string node, string snapname, int vmid, UpdateVMSnapshotConfigRequest updateVMSnapshotConfigRequest = default(UpdateVMSnapshotConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response> localVarResponse = await UpdateVMSnapshotConfigWithHttpInfoAsync(node, snapname, vmid, updateVMSnapshotConfigRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// updateVMSnapshotConfig Update snapshot metadata.
        /// </summary>
        /// <exception cref="ProxmoxSharp.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="node">node</param>
        /// <param name="snapname">snapname</param>
        /// <param name="vmid">vmid</param>
        /// <param name="updateVMSnapshotConfigRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CreateClusterReplication200Response)</returns>
        public async System.Threading.Tasks.Task<ProxmoxSharp.Client.ApiResponse<CreateClusterReplication200Response>> UpdateVMSnapshotConfigWithHttpInfoAsync(string node, string snapname, int vmid, UpdateVMSnapshotConfigRequest updateVMSnapshotConfigRequest = default(UpdateVMSnapshotConfigRequest), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'node' is set
            if (node == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'node' when calling ProxmoxGeneratedApi->UpdateVMSnapshotConfig");
            }

            // verify the required parameter 'snapname' is set
            if (snapname == null)
            {
                throw new ProxmoxSharp.Client.ApiException(400, "Missing required parameter 'snapname' when calling ProxmoxGeneratedApi->UpdateVMSnapshotConfig");
            }


            ProxmoxSharp.Client.RequestOptions localVarRequestOptions = new ProxmoxSharp.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = ProxmoxSharp.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = ProxmoxSharp.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("node", ProxmoxSharp.Client.ClientUtils.ParameterToString(node)); // path parameter
            localVarRequestOptions.PathParameters.Add("snapname", ProxmoxSharp.Client.ClientUtils.ParameterToString(snapname)); // path parameter
            localVarRequestOptions.PathParameters.Add("vmid", ProxmoxSharp.Client.ClientUtils.ParameterToString(vmid)); // path parameter
            localVarRequestOptions.Data = updateVMSnapshotConfigRequest;

            localVarRequestOptions.Operation = "ProxmoxGeneratedApi.UpdateVMSnapshotConfig";
            localVarRequestOptions.OperationIndex = operationIndex;


            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<CreateClusterReplication200Response>("/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateVMSnapshotConfig", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

    }
}
