/*
 * Tribufu API
 *
 * API to access Tribufu services.
 *
 * The version of the OpenAPI document: 1.2.6
 * Contact: contact@tribufu.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 Tribufu.Client;
using Tribufu.Model;

namespace Tribufu.Api
{

    /// <summary>
    /// Represents a collection of functions to interact with the API endpoints
    /// </summary>
    public interface ITribufuGeneratedApiSync : IApiAccessor
    {
        #region Synchronous Operations
        /// <summary>
        /// Authorize the client to access the user information.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.authorize&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="authorizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CodeResponse</returns>
        CodeResponse Authorize(AuthorizeRequest? authorizeRequest = default(AuthorizeRequest?), int operationIndex = 0);

        /// <summary>
        /// Authorize the client to access the user information.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.authorize&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="authorizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CodeResponse</returns>
        ApiResponse<CodeResponse> AuthorizeWithHttpInfo(AuthorizeRequest? authorizeRequest = default(AuthorizeRequest?), int operationIndex = 0);
        /// <summary>
        /// Change the email of a user.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.email.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void ChangeEmail(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Change the email of a user.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.email.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> ChangeEmailWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Change the password of a user.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.password.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void ChangePassword(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Change the password of a user.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.password.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> ChangePasswordWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Claim a game server.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void ClaimGameServer(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Claim a game server.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> ClaimGameServerWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Claim a game server.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        void ClaimGameServerV1(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Claim a game server.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        ApiResponse<Object> ClaimGameServerV1WithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Convert a string to base64 or vice versa.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.convert.base64&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cryptoViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CryptoViewModel</returns>
        CryptoViewModel ConvertBase64(CryptoViewModel? cryptoViewModel = default(CryptoViewModel?), int operationIndex = 0);

        /// <summary>
        /// Convert a string to base64 or vice versa.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.convert.base64&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cryptoViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CryptoViewModel</returns>
        ApiResponse<CryptoViewModel> ConvertBase64WithHttpInfo(CryptoViewModel? cryptoViewModel = default(CryptoViewModel?), int operationIndex = 0);
        /// <summary>
        /// Create an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void CreateClient(Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Create an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> CreateClientWithHttpInfo(Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Create a new game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void CreateGameServer(Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Create a new game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> CreateGameServerWithHttpInfo(Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Create a new game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void CreateGameServerCluster(Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Create a new game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> CreateGameServerClusterWithHttpInfo(Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Create a new game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        void CreateGameServerClusterV1(Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Create a new game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        ApiResponse<Object> CreateGameServerClusterV1WithHttpInfo(Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Create a new game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        void CreateGameServerV1(Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Create a new game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        ApiResponse<Object> CreateGameServerV1WithHttpInfo(Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Create a new group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void CreateGroup(Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Create a new group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> CreateGroupWithHttpInfo(Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Create a new package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="image"></param>
        /// <param name="files"></param>
        /// <param name="version"></param>
        /// <param name="description"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Package</returns>
        Package CreatePackage(string name, System.IO.Stream image, List<System.IO.Stream> files, string version, string? description = default(string?), int operationIndex = 0);

        /// <summary>
        /// Create a new package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="image"></param>
        /// <param name="files"></param>
        /// <param name="version"></param>
        /// <param name="description"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Package</returns>
        ApiResponse<Package> CreatePackageWithHttpInfo(string name, System.IO.Stream image, List<System.IO.Stream> files, string version, string? description = default(string?), int operationIndex = 0);
        /// <summary>
        /// Create a new token with grant type.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>TokenResponse</returns>
        TokenResponse CreateToken(TokenRequest? tokenRequest = default(TokenRequest?), int operationIndex = 0);

        /// <summary>
        /// Create a new token with grant type.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of TokenResponse</returns>
        ApiResponse<TokenResponse> CreateTokenWithHttpInfo(TokenRequest? tokenRequest = default(TokenRequest?), int operationIndex = 0);
        /// <summary>
        /// Create an user.
        /// </summary>
        /// <remarks>
        /// This endpoint is only available with client credentials.
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createUser"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void CreateUser(CreateUser? createUser = default(CreateUser?), int operationIndex = 0);

        /// <summary>
        /// Create an user.
        /// </summary>
        /// <remarks>
        /// This endpoint is only available with client credentials.
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createUser"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> CreateUserWithHttpInfo(CreateUser? createUser = default(CreateUser?), int operationIndex = 0);
        /// <summary>
        /// Delete an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void DeleteClient(string id, int operationIndex = 0);

        /// <summary>
        /// Delete an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> DeleteClientWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Delete a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void DeleteGameServer(string id, int operationIndex = 0);

        /// <summary>
        /// Delete a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> DeleteGameServerWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Delete a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void DeleteGameServerCluster(string id, int operationIndex = 0);

        /// <summary>
        /// Delete a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> DeleteGameServerClusterWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Delete a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        void DeleteGameServerClusterV1(string id, int operationIndex = 0);

        /// <summary>
        /// Delete a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        ApiResponse<Object> DeleteGameServerClusterV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Delete a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        void DeleteGameServerV1(string id, int operationIndex = 0);

        /// <summary>
        /// Delete a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        ApiResponse<Object> DeleteGameServerV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Delete a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void DeleteGroup(string id, int operationIndex = 0);

        /// <summary>
        /// Delete a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> DeleteGroupWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Delete an package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void DeletePackage(string id, int operationIndex = 0);

        /// <summary>
        /// Delete an package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> DeletePackageWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Generate one or more flake ids.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;string&gt;</returns>
        List<string> GenerateFlakeId(int? amount = default(int?), int operationIndex = 0);

        /// <summary>
        /// Generate one or more flake ids.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;string&gt;</returns>
        ApiResponse<List<string>> GenerateFlakeIdWithHttpInfo(int? amount = default(int?), int operationIndex = 0);
        /// <summary>
        /// Generate one or more flake ids from a timestamp.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake.timestamp&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="timestamp"></param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;string&gt;</returns>
        List<string> GenerateFlakeIdFromTimestamp(string timestamp, int? amount = default(int?), int operationIndex = 0);

        /// <summary>
        /// Generate one or more flake ids from a timestamp.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake.timestamp&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="timestamp"></param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;string&gt;</returns>
        ApiResponse<List<string>> GenerateFlakeIdFromTimestampWithHttpInfo(string timestamp, int? amount = default(int?), int operationIndex = 0);
        /// <summary>
        /// Generate a random password.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.password&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="length"> (optional)</param>
        /// <param name="symbols"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        HashViewModel GeneratePassword(int? length = default(int?), bool? symbols = default(bool?), int operationIndex = 0);

        /// <summary>
        /// Generate a random password.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.password&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="length"> (optional)</param>
        /// <param name="symbols"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        ApiResponse<HashViewModel> GeneratePasswordWithHttpInfo(int? length = default(int?), bool? symbols = default(bool?), int operationIndex = 0);
        /// <summary>
        /// Generate one or more uuids with a specific version.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="version"> (optional)</param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Guid&gt;</returns>
        List<Guid> GenerateUuid(int? version = default(int?), int? amount = default(int?), int operationIndex = 0);

        /// <summary>
        /// Generate one or more uuids with a specific version.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="version"> (optional)</param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Guid&gt;</returns>
        ApiResponse<List<Guid>> GenerateUuidWithHttpInfo(int? version = default(int?), int? amount = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get an oauth2 client by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ModelClient</returns>
        ModelClient GetClientById(string id, int operationIndex = 0);

        /// <summary>
        /// Get an oauth2 client by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of ModelClient</returns>
        ApiResponse<ModelClient> GetClientByIdWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get current client information.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ClientInfo</returns>
        ClientInfo GetClientInfo(int operationIndex = 0);

        /// <summary>
        /// Get current client information.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of ClientInfo</returns>
        ApiResponse<ClientInfo> GetClientInfoWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// Get a list of oauth2 clients.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ModelClient&gt;</returns>
        List<ModelClient> GetClients(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of oauth2 clients.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ModelClient&gt;</returns>
        ApiResponse<List<ModelClient>> GetClientsWithHttpInfo(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get current ip address location.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;IpAddress&gt;</returns>
        List<IpAddress> GetCurrentIpAddress(int operationIndex = 0);

        /// <summary>
        /// Get current ip address location.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;IpAddress&gt;</returns>
        ApiResponse<List<IpAddress>> GetCurrentIpAddressWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// Get a game by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Game</returns>
        Game GetGameById(string id, int operationIndex = 0);

        /// <summary>
        /// Get a game by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Game</returns>
        ApiResponse<Game> GetGameByIdWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a game server by address and query port.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServer</returns>
        GameServer GetGameServerByAddressAndQueryPort(string address, int port, int operationIndex = 0);

        /// <summary>
        /// Get a game server by address and query port.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServer</returns>
        ApiResponse<GameServer> GetGameServerByAddressAndQueryPortWithHttpInfo(string address, int port, int operationIndex = 0);
        /// <summary>
        /// Get a game server by address and query port.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServer</returns>
        [Obsolete]
        GameServer GetGameServerByAddressAndQueryPortV1(string address, int port, int operationIndex = 0);

        /// <summary>
        /// Get a game server by address and query port.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServer</returns>
        [Obsolete]
        ApiResponse<GameServer> GetGameServerByAddressAndQueryPortV1WithHttpInfo(string address, int port, int operationIndex = 0);
        /// <summary>
        /// Get a game server by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServer</returns>
        GameServer GetGameServerById(string id, int operationIndex = 0);

        /// <summary>
        /// Get a game server by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServer</returns>
        ApiResponse<GameServer> GetGameServerByIdWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a game server by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServer</returns>
        [Obsolete]
        GameServer GetGameServerByIdV1(string id, int operationIndex = 0);

        /// <summary>
        /// Get a game server by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServer</returns>
        [Obsolete]
        ApiResponse<GameServer> GetGameServerByIdV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a game server cluster by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServerCluster</returns>
        GameServerCluster GetGameServerClusterById(string id, int operationIndex = 0);

        /// <summary>
        /// Get a game server cluster by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServerCluster</returns>
        ApiResponse<GameServerCluster> GetGameServerClusterByIdWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a game server cluster by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServerCluster</returns>
        [Obsolete]
        GameServerCluster GetGameServerClusterByIdV1(string id, int operationIndex = 0);

        /// <summary>
        /// Get a game server cluster by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServerCluster</returns>
        [Obsolete]
        ApiResponse<GameServerCluster> GetGameServerClusterByIdV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of game server cluster servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        List<Object> GetGameServerClusterServers(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of game server cluster servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        ApiResponse<List<Object>> GetGameServerClusterServersWithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of game server cluster servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        [Obsolete]
        List<Object> GetGameServerClusterServersV1(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of game server cluster servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        [Obsolete]
        ApiResponse<List<Object>> GetGameServerClusterServersV1WithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of game server clusters.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServerCluster&gt;</returns>
        List<GameServerCluster> GetGameServerClusters(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of game server clusters.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServerCluster&gt;</returns>
        ApiResponse<List<GameServerCluster>> GetGameServerClustersWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of game server clusters.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServerCluster&gt;</returns>
        [Obsolete]
        List<GameServerCluster> GetGameServerClustersV1(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of game server clusters.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServerCluster&gt;</returns>
        [Obsolete]
        ApiResponse<List<GameServerCluster>> GetGameServerClustersV1WithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a game server query history.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServerQuery&gt;</returns>
        List<GameServerQuery> GetGameServerQueries(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a game server query history.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServerQuery&gt;</returns>
        ApiResponse<List<GameServerQuery>> GetGameServerQueriesWithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a game server query history.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServerQuery&gt;</returns>
        [Obsolete]
        List<GameServerQuery> GetGameServerQueriesV1(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a game server query history.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServerQuery&gt;</returns>
        [Obsolete]
        ApiResponse<List<GameServerQuery>> GetGameServerQueriesV1WithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        List<GameServer> GetGameServers(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        ApiResponse<List<GameServer>> GetGameServersWithHttpInfo(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of game servers from a country.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        List<GameServer> GetGameServersByCountry(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of game servers from a country.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        ApiResponse<List<GameServer>> GetGameServersByCountryWithHttpInfo(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of game servers from a country.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        [Obsolete]
        List<GameServer> GetGameServersByCountryV1(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of game servers from a country.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        [Obsolete]
        ApiResponse<List<GameServer>> GetGameServersByCountryV1WithHttpInfo(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of countries with the number of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Dictionary&lt;string, int&gt;</returns>
        Dictionary<string, int> GetGameServersCountries(int operationIndex = 0);

        /// <summary>
        /// Get a list of countries with the number of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Dictionary&lt;string, int&gt;</returns>
        ApiResponse<Dictionary<string, int>> GetGameServersCountriesWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// Get a list of countries with the number of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Dictionary&lt;string, int&gt;</returns>
        [Obsolete]
        Dictionary<string, int> GetGameServersCountriesV1(int operationIndex = 0);

        /// <summary>
        /// Get a list of countries with the number of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Dictionary&lt;string, int&gt;</returns>
        [Obsolete]
        ApiResponse<Dictionary<string, int>> GetGameServersCountriesV1WithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// Get metrics about the tracked game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ServerMetrics</returns>
        ServerMetrics GetGameServersMetrics(int operationIndex = 0);

        /// <summary>
        /// Get metrics about the tracked game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of ServerMetrics</returns>
        ApiResponse<ServerMetrics> GetGameServersMetricsWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// Get metrics about the tracked game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ServerMetrics</returns>
        [Obsolete]
        ServerMetrics GetGameServersMetricsV1(int operationIndex = 0);

        /// <summary>
        /// Get metrics about the tracked game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of ServerMetrics</returns>
        [Obsolete]
        ApiResponse<ServerMetrics> GetGameServersMetricsV1WithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// Get a list of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        [Obsolete]
        List<GameServer> GetGameServersV1(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        [Obsolete]
        ApiResponse<List<GameServer>> GetGameServersV1WithHttpInfo(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of games.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Game&gt;</returns>
        List<Game> GetGames(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of games.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Game&gt;</returns>
        ApiResponse<List<Game>> GetGamesWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a group by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Group</returns>
        Group GetGroupById(string id, int operationIndex = 0);

        /// <summary>
        /// Get a group by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Group</returns>
        ApiResponse<Group> GetGroupByIdWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a group by tag.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.tag&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tag"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Group</returns>
        Group GetGroupByTag(string tag, int operationIndex = 0);

        /// <summary>
        /// Get a group by tag.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.tag&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tag"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Group</returns>
        ApiResponse<Group> GetGroupByTagWithHttpInfo(string tag, int operationIndex = 0);
        /// <summary>
        /// Get a group by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Group</returns>
        Group GetGroupByUuid(Guid uuid, int operationIndex = 0);

        /// <summary>
        /// Get a group by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Group</returns>
        ApiResponse<Group> GetGroupByUuidWithHttpInfo(Guid uuid, int operationIndex = 0);
        /// <summary>
        /// Get a list of games of a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GroupGame&gt;</returns>
        List<GroupGame> GetGroupGames(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of games of a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GroupGame&gt;</returns>
        ApiResponse<List<GroupGame>> GetGroupGamesWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of members in a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.member.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GroupMember&gt;</returns>
        List<GroupMember> GetGroupMembers(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of members in a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.member.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GroupMember&gt;</returns>
        ApiResponse<List<GroupMember>> GetGroupMembersWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of groups.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Group&gt;</returns>
        List<Group> GetGroups(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of groups.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Group&gt;</returns>
        ApiResponse<List<Group>> GetGroupsWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a ip address location.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>IpAddress</returns>
        IpAddress GetIpAddress(string address, int operationIndex = 0);

        /// <summary>
        /// Get a ip address location.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of IpAddress</returns>
        ApiResponse<IpAddress> GetIpAddressWithHttpInfo(string address, int operationIndex = 0);
        /// <summary>
        /// Get a list of ip addresses.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.geoip.address.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;IpAddress&gt;</returns>
        List<IpAddress> GetIpAddresses(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of ip addresses.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.geoip.address.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;IpAddress&gt;</returns>
        ApiResponse<List<IpAddress>> GetIpAddressesWithHttpInfo(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get the top 20 leaderboard users.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.leaderboard.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="order"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;LeaderboardItem&gt;</returns>
        List<LeaderboardItem> GetLeaderboard(LeaderboardOrder? order = default(LeaderboardOrder?), int operationIndex = 0);

        /// <summary>
        /// Get the top 20 leaderboard users.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.leaderboard.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="order"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;LeaderboardItem&gt;</returns>
        ApiResponse<List<LeaderboardItem>> GetLeaderboardWithHttpInfo(LeaderboardOrder? order = default(LeaderboardOrder?), int operationIndex = 0);
        /// <summary>
        /// Get a package by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Package</returns>
        Package GetPackageById(string id, int operationIndex = 0);

        /// <summary>
        /// Get a package by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Package</returns>
        ApiResponse<Package> GetPackageByIdWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of packages.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Package&gt;</returns>
        List<Package> GetPackages(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of packages.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Package&gt;</returns>
        ApiResponse<List<Package>> GetPackagesWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get the public keys for the client.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void GetPublicKeys(int operationIndex = 0);

        /// <summary>
        /// Get the public keys for the client.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> GetPublicKeysWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// Get a subscription by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Subscription</returns>
        Subscription GetSubscriptionById(string id, int operationIndex = 0);

        /// <summary>
        /// Get a subscription by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Subscription</returns>
        ApiResponse<Subscription> GetSubscriptionByIdWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of subscriptions.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Subscription&gt;</returns>
        List<Subscription> GetSubscriptions(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of subscriptions.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Subscription&gt;</returns>
        ApiResponse<List<Subscription>> GetSubscriptionsWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of connected accounts of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.account.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Account&gt;</returns>
        List<Account> GetUserAccounts(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of connected accounts of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.account.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Account&gt;</returns>
        ApiResponse<List<Account>> GetUserAccountsWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of friends of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        List<Object> GetUserFriends(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of friends of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        ApiResponse<List<Object>> GetUserFriendsWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of friends of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        [Obsolete]
        List<Object> GetUserFriendsV1(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of friends of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        [Obsolete]
        ApiResponse<List<Object>> GetUserFriendsV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of games the user has played.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ProfileGame&gt;</returns>
        List<ProfileGame> GetUserGames(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of games the user has played.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ProfileGame&gt;</returns>
        ApiResponse<List<ProfileGame>> GetUserGamesWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of games the user has played.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ProfileGame&gt;</returns>
        [Obsolete]
        List<ProfileGame> GetUserGamesV1(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of games the user has played.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ProfileGame&gt;</returns>
        [Obsolete]
        ApiResponse<List<ProfileGame>> GetUserGamesV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of groups the user is a member of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ProfileGroup&gt;</returns>
        List<ProfileGroup> GetUserGroups(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of groups the user is a member of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ProfileGroup&gt;</returns>
        ApiResponse<List<ProfileGroup>> GetUserGroupsWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of groups the user is a member of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ProfileGroup&gt;</returns>
        [Obsolete]
        List<ProfileGroup> GetUserGroupsV1(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of groups the user is a member of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ProfileGroup&gt;</returns>
        [Obsolete]
        ApiResponse<List<ProfileGroup>> GetUserGroupsV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get current user information.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.user.info&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>UserInfo</returns>
        UserInfo GetUserInfo(int operationIndex = 0);

        /// <summary>
        /// Get current user information.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.user.info&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of UserInfo</returns>
        ApiResponse<UserInfo> GetUserInfoWithHttpInfo(int operationIndex = 0);
        /// <summary>
        /// Get a user profile by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        Profile GetUserProfileById(string id, int operationIndex = 0);

        /// <summary>
        /// Get a user profile by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        ApiResponse<Profile> GetUserProfileByIdWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a user profile by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        [Obsolete]
        Profile GetUserProfileByIdV1(string id, int operationIndex = 0);

        /// <summary>
        /// Get a user profile by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        [Obsolete]
        ApiResponse<Profile> GetUserProfileByIdV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a user profile by name.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        Profile GetUserProfileByName(string name, int operationIndex = 0);

        /// <summary>
        /// Get a user profile by name.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        ApiResponse<Profile> GetUserProfileByNameWithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// Get a user profile by name.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        [Obsolete]
        Profile GetUserProfileByNameV1(string name, int operationIndex = 0);

        /// <summary>
        /// Get a user profile by name.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        [Obsolete]
        ApiResponse<Profile> GetUserProfileByNameV1WithHttpInfo(string name, int operationIndex = 0);
        /// <summary>
        /// Get a user profile by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        Profile GetUserProfileByUuid(Guid uuid, int operationIndex = 0);

        /// <summary>
        /// Get a user profile by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        ApiResponse<Profile> GetUserProfileByUuidWithHttpInfo(Guid uuid, int operationIndex = 0);
        /// <summary>
        /// Get a user profile by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        [Obsolete]
        Profile GetUserProfileByUuidV1(Guid uuid, int operationIndex = 0);

        /// <summary>
        /// Get a user profile by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        [Obsolete]
        ApiResponse<Profile> GetUserProfileByUuidV1WithHttpInfo(Guid uuid, int operationIndex = 0);
        /// <summary>
        /// Get a list of user profiles.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Profile&gt;</returns>
        List<Profile> GetUserProfiles(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of user profiles.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Profile&gt;</returns>
        ApiResponse<List<Profile>> GetUserProfilesWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of user profiles.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Profile&gt;</returns>
        [Obsolete]
        List<Profile> GetUserProfilesV1(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of user profiles.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Profile&gt;</returns>
        [Obsolete]
        ApiResponse<List<Profile>> GetUserProfilesV1WithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of sanctions the user has received.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        List<Object> GetUserSanctions(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of sanctions the user has received.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        ApiResponse<List<Object>> GetUserSanctionsWithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of sanctions the user has received.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        [Obsolete]
        List<Object> GetUserSanctionsV1(string id, int operationIndex = 0);

        /// <summary>
        /// Get a list of sanctions the user has received.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        [Obsolete]
        ApiResponse<List<Object>> GetUserSanctionsV1WithHttpInfo(string id, int operationIndex = 0);
        /// <summary>
        /// Get a list of servers the user is owner of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        List<GameServer> GetUserServers(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of servers the user is owner of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        ApiResponse<List<GameServer>> GetUserServersWithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Get a list of servers the user is owner of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        [Obsolete]
        List<GameServer> GetUserServersV1(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);

        /// <summary>
        /// Get a list of servers the user is owner of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        [Obsolete]
        ApiResponse<List<GameServer>> GetUserServersV1WithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0);
        /// <summary>
        /// Hash a string using argon2.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.argon2&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        HashViewModel HashArgon2(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0);

        /// <summary>
        /// Hash a string using argon2.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.argon2&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        ApiResponse<HashViewModel> HashArgon2WithHttpInfo(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0);
        /// <summary>
        /// Hash a string using bcrypt.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.bcrypt&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        HashViewModel HashBcrypt(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0);

        /// <summary>
        /// Hash a string using bcrypt.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.bcrypt&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        ApiResponse<HashViewModel> HashBcryptWithHttpInfo(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0);
        /// <summary>
        /// Hash a string using md5.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.md5&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        HashViewModel HashMd5(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0);

        /// <summary>
        /// Hash a string using md5.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.md5&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        ApiResponse<HashViewModel> HashMd5WithHttpInfo(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0);
        /// <summary>
        /// Hash a string using sha256.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.sha256&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        HashViewModel HashSha256(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0);

        /// <summary>
        /// Hash a string using sha256.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.sha256&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        ApiResponse<HashViewModel> HashSha256WithHttpInfo(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0);
        /// <summary>
        /// Introspect a token.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="introspectRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>IntrospectResponse</returns>
        IntrospectResponse IntrospectToken(IntrospectRequest? introspectRequest = default(IntrospectRequest?), int operationIndex = 0);

        /// <summary>
        /// Introspect a token.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="introspectRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of IntrospectResponse</returns>
        ApiResponse<IntrospectResponse> IntrospectTokenWithHttpInfo(IntrospectRequest? introspectRequest = default(IntrospectRequest?), int operationIndex = 0);
        /// <summary>
        /// Revoke a token.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="revokeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void RevokeToken(RevokeRequest? revokeRequest = default(RevokeRequest?), int operationIndex = 0);

        /// <summary>
        /// Revoke a token.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="revokeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> RevokeTokenWithHttpInfo(RevokeRequest? revokeRequest = default(RevokeRequest?), int operationIndex = 0);
        /// <summary>
        /// Advanced search.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.search&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="search"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        List<Object> Search(Search? search = default(Search?), int operationIndex = 0);

        /// <summary>
        /// Advanced search.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.search&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="search"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        ApiResponse<List<Object>> SearchWithHttpInfo(Search? search = default(Search?), int operationIndex = 0);
        /// <summary>
        /// Update an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void UpdateClient(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Update an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> UpdateClientWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Update a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void UpdateGameServer(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Update a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> UpdateGameServerWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Update a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void UpdateGameServerCluster(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Update a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> UpdateGameServerClusterWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Update a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        void UpdateGameServerClusterV1(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Update a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        ApiResponse<Object> UpdateGameServerClusterV1WithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Update a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        void UpdateGameServerV1(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Update a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        ApiResponse<Object> UpdateGameServerV1WithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Update a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void UpdateGroup(string id, Object? body = default(Object?), int operationIndex = 0);

        /// <summary>
        /// Update a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> UpdateGroupWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0);
        /// <summary>
        /// Update an package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="package"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        void UpdatePackage(string id, Package? package = default(Package?), int operationIndex = 0);

        /// <summary>
        /// Update an package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="package"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        ApiResponse<Object> UpdatePackageWithHttpInfo(string id, Package? package = default(Package?), int operationIndex = 0);
        /// <summary>
        /// Update a user profile.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        Profile UpdateUserProfile(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0);

        /// <summary>
        /// Update a user profile.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        ApiResponse<Profile> UpdateUserProfileWithHttpInfo(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0);
        /// <summary>
        /// Update a user profile.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        [Obsolete]
        Profile UpdateUserProfileV1(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0);

        /// <summary>
        /// Update a user profile.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        [Obsolete]
        ApiResponse<Profile> UpdateUserProfileV1WithHttpInfo(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0);
        #endregion Synchronous Operations
    }

    /// <summary>
    /// Represents a collection of functions to interact with the API endpoints
    /// </summary>
    public interface ITribufuGeneratedApiAsync : IApiAccessor
    {
        #region Asynchronous Operations
        /// <summary>
        /// Authorize the client to access the user information.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.authorize&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="authorizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CodeResponse</returns>
        System.Threading.Tasks.Task<CodeResponse> AuthorizeAsync(AuthorizeRequest? authorizeRequest = default(AuthorizeRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Authorize the client to access the user information.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.authorize&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="authorizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CodeResponse)</returns>
        System.Threading.Tasks.Task<ApiResponse<CodeResponse>> AuthorizeWithHttpInfoAsync(AuthorizeRequest? authorizeRequest = default(AuthorizeRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Change the email of a user.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.email.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        System.Threading.Tasks.Task ChangeEmailAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Change the email of a user.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.email.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> ChangeEmailWithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Change the password of a user.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.password.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        System.Threading.Tasks.Task ChangePasswordAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Change the password of a user.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.password.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> ChangePasswordWithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Claim a game server.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        System.Threading.Tasks.Task ClaimGameServerAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Claim a game server.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> ClaimGameServerWithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Claim a game server.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        [Obsolete]
        System.Threading.Tasks.Task ClaimGameServerV1Async(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Claim a game server.
        /// </summary>
        /// <remarks>
        /// This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Object>> ClaimGameServerV1WithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Convert a string to base64 or vice versa.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.convert.base64&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cryptoViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CryptoViewModel</returns>
        System.Threading.Tasks.Task<CryptoViewModel> ConvertBase64Async(CryptoViewModel? cryptoViewModel = default(CryptoViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Convert a string to base64 or vice versa.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.convert.base64&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cryptoViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CryptoViewModel)</returns>
        System.Threading.Tasks.Task<ApiResponse<CryptoViewModel>> ConvertBase64WithHttpInfoAsync(CryptoViewModel? cryptoViewModel = default(CryptoViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        System.Threading.Tasks.Task CreateClientAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> CreateClientWithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create a new game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        System.Threading.Tasks.Task CreateGameServerAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create a new game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> CreateGameServerWithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create a new game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        System.Threading.Tasks.Task CreateGameServerClusterAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create a new game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> CreateGameServerClusterWithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create a new game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        [Obsolete]
        System.Threading.Tasks.Task CreateGameServerClusterV1Async(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create a new game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Object>> CreateGameServerClusterV1WithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create a new game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        [Obsolete]
        System.Threading.Tasks.Task CreateGameServerV1Async(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create a new game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Object>> CreateGameServerV1WithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create a new group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        System.Threading.Tasks.Task CreateGroupAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create a new group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> CreateGroupWithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create a new package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="image"></param>
        /// <param name="files"></param>
        /// <param name="version"></param>
        /// <param name="description"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Package</returns>
        System.Threading.Tasks.Task<Package> CreatePackageAsync(string name, System.IO.Stream image, List<System.IO.Stream> files, string version, string? description = default(string?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create a new package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.create&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="image"></param>
        /// <param name="files"></param>
        /// <param name="version"></param>
        /// <param name="description"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Package)</returns>
        System.Threading.Tasks.Task<ApiResponse<Package>> CreatePackageWithHttpInfoAsync(string name, System.IO.Stream image, List<System.IO.Stream> files, string version, string? description = default(string?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create a new token with grant type.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of TokenResponse</returns>
        System.Threading.Tasks.Task<TokenResponse> CreateTokenAsync(TokenRequest? tokenRequest = default(TokenRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create a new token with grant type.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (TokenResponse)</returns>
        System.Threading.Tasks.Task<ApiResponse<TokenResponse>> CreateTokenWithHttpInfoAsync(TokenRequest? tokenRequest = default(TokenRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Create an user.
        /// </summary>
        /// <remarks>
        /// This endpoint is only available with client credentials.
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createUser"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task CreateUserAsync(CreateUser? createUser = default(CreateUser?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Create an user.
        /// </summary>
        /// <remarks>
        /// This endpoint is only available with client credentials.
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createUser"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> CreateUserWithHttpInfoAsync(CreateUser? createUser = default(CreateUser?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Delete an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task DeleteClientAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Delete an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> DeleteClientWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Delete a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task DeleteGameServerAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Delete a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> DeleteGameServerWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Delete a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task DeleteGameServerClusterAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Delete a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> DeleteGameServerClusterWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Delete a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        [Obsolete]
        System.Threading.Tasks.Task DeleteGameServerClusterV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Delete a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Object>> DeleteGameServerClusterV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Delete a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        [Obsolete]
        System.Threading.Tasks.Task DeleteGameServerV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Delete a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Object>> DeleteGameServerV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Delete a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task DeleteGroupAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Delete a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> DeleteGroupWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Delete an package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task DeletePackageAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Delete an package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.delete&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> DeletePackageWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Generate one or more flake ids.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;string&gt;</returns>
        System.Threading.Tasks.Task<List<string>> GenerateFlakeIdAsync(int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Generate one or more flake ids.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;string&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<string>>> GenerateFlakeIdWithHttpInfoAsync(int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Generate one or more flake ids from a timestamp.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake.timestamp&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="timestamp"></param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;string&gt;</returns>
        System.Threading.Tasks.Task<List<string>> GenerateFlakeIdFromTimestampAsync(string timestamp, int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Generate one or more flake ids from a timestamp.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake.timestamp&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="timestamp"></param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;string&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<string>>> GenerateFlakeIdFromTimestampWithHttpInfoAsync(string timestamp, int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Generate a random password.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.password&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="length"> (optional)</param>
        /// <param name="symbols"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        System.Threading.Tasks.Task<HashViewModel> GeneratePasswordAsync(int? length = default(int?), bool? symbols = default(bool?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Generate a random password.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.password&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="length"> (optional)</param>
        /// <param name="symbols"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        System.Threading.Tasks.Task<ApiResponse<HashViewModel>> GeneratePasswordWithHttpInfoAsync(int? length = default(int?), bool? symbols = default(bool?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Generate one or more uuids with a specific version.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="version"> (optional)</param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Guid&gt;</returns>
        System.Threading.Tasks.Task<List<Guid>> GenerateUuidAsync(int? version = default(int?), int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Generate one or more uuids with a specific version.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="version"> (optional)</param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Guid&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Guid>>> GenerateUuidWithHttpInfoAsync(int? version = default(int?), int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get an oauth2 client by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ModelClient</returns>
        System.Threading.Tasks.Task<ModelClient> GetClientByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get an oauth2 client by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (ModelClient)</returns>
        System.Threading.Tasks.Task<ApiResponse<ModelClient>> GetClientByIdWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get current client information.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ClientInfo</returns>
        System.Threading.Tasks.Task<ClientInfo> GetClientInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get current client information.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (ClientInfo)</returns>
        System.Threading.Tasks.Task<ApiResponse<ClientInfo>> GetClientInfoWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of oauth2 clients.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ModelClient&gt;</returns>
        System.Threading.Tasks.Task<List<ModelClient>> GetClientsAsync(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of oauth2 clients.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;ModelClient&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<ModelClient>>> GetClientsWithHttpInfoAsync(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get current ip address location.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;IpAddress&gt;</returns>
        System.Threading.Tasks.Task<List<IpAddress>> GetCurrentIpAddressAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get current ip address location.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (List&lt;IpAddress&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<IpAddress>>> GetCurrentIpAddressWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Game</returns>
        System.Threading.Tasks.Task<Game> GetGameByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Game)</returns>
        System.Threading.Tasks.Task<ApiResponse<Game>> GetGameByIdWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game server by address and query port.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServer</returns>
        System.Threading.Tasks.Task<GameServer> GetGameServerByAddressAndQueryPortAsync(string address, int port, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game server by address and query port.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GameServer)</returns>
        System.Threading.Tasks.Task<ApiResponse<GameServer>> GetGameServerByAddressAndQueryPortWithHttpInfoAsync(string address, int port, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game server by address and query port.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServer</returns>
        [Obsolete]
        System.Threading.Tasks.Task<GameServer> GetGameServerByAddressAndQueryPortV1Async(string address, int port, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game server by address and query port.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GameServer)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<GameServer>> GetGameServerByAddressAndQueryPortV1WithHttpInfoAsync(string address, int port, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game server by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServer</returns>
        System.Threading.Tasks.Task<GameServer> GetGameServerByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game server by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (GameServer)</returns>
        System.Threading.Tasks.Task<ApiResponse<GameServer>> GetGameServerByIdWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game server by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServer</returns>
        [Obsolete]
        System.Threading.Tasks.Task<GameServer> GetGameServerByIdV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game server by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (GameServer)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<GameServer>> GetGameServerByIdV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game server cluster by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServerCluster</returns>
        System.Threading.Tasks.Task<GameServerCluster> GetGameServerClusterByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game server cluster by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (GameServerCluster)</returns>
        System.Threading.Tasks.Task<ApiResponse<GameServerCluster>> GetGameServerClusterByIdWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game server cluster by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServerCluster</returns>
        [Obsolete]
        System.Threading.Tasks.Task<GameServerCluster> GetGameServerClusterByIdV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game server cluster by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (GameServerCluster)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<GameServerCluster>> GetGameServerClusterByIdV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of game server cluster servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        System.Threading.Tasks.Task<List<Object>> GetGameServerClusterServersAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of game server cluster servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Object&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Object>>> GetGameServerClusterServersWithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of game server cluster servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<Object>> GetGameServerClusterServersV1Async(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of game server cluster servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Object&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<Object>>> GetGameServerClusterServersV1WithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of game server clusters.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServerCluster&gt;</returns>
        System.Threading.Tasks.Task<List<GameServerCluster>> GetGameServerClustersAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of game server clusters.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServerCluster&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<GameServerCluster>>> GetGameServerClustersWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of game server clusters.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServerCluster&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<GameServerCluster>> GetGameServerClustersV1Async(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of game server clusters.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServerCluster&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<GameServerCluster>>> GetGameServerClustersV1WithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game server query history.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServerQuery&gt;</returns>
        System.Threading.Tasks.Task<List<GameServerQuery>> GetGameServerQueriesAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game server query history.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServerQuery&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<GameServerQuery>>> GetGameServerQueriesWithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a game server query history.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServerQuery&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<GameServerQuery>> GetGameServerQueriesV1Async(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a game server query history.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServerQuery&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<GameServerQuery>>> GetGameServerQueriesV1WithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        System.Threading.Tasks.Task<List<GameServer>> GetGameServersAsync(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<GameServer>>> GetGameServersWithHttpInfoAsync(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of game servers from a country.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        System.Threading.Tasks.Task<List<GameServer>> GetGameServersByCountryAsync(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of game servers from a country.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<GameServer>>> GetGameServersByCountryWithHttpInfoAsync(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of game servers from a country.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<GameServer>> GetGameServersByCountryV1Async(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of game servers from a country.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<GameServer>>> GetGameServersByCountryV1WithHttpInfoAsync(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of countries with the number of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Dictionary&lt;string, int&gt;</returns>
        System.Threading.Tasks.Task<Dictionary<string, int>> GetGameServersCountriesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of countries with the number of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (Dictionary&lt;string, int&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<Dictionary<string, int>>> GetGameServersCountriesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of countries with the number of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Dictionary&lt;string, int&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<Dictionary<string, int>> GetGameServersCountriesV1Async(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of countries with the number of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (Dictionary&lt;string, int&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Dictionary<string, int>>> GetGameServersCountriesV1WithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get metrics about the tracked game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ServerMetrics</returns>
        System.Threading.Tasks.Task<ServerMetrics> GetGameServersMetricsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get metrics about the tracked game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (ServerMetrics)</returns>
        System.Threading.Tasks.Task<ApiResponse<ServerMetrics>> GetGameServersMetricsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get metrics about the tracked game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ServerMetrics</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ServerMetrics> GetGameServersMetricsV1Async(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get metrics about the tracked game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (ServerMetrics)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<ServerMetrics>> GetGameServersMetricsV1WithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<GameServer>> GetGameServersV1Async(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of game servers.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<GameServer>>> GetGameServersV1WithHttpInfoAsync(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of games.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Game&gt;</returns>
        System.Threading.Tasks.Task<List<Game>> GetGamesAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of games.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Game&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Game>>> GetGamesWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a group by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Group</returns>
        System.Threading.Tasks.Task<Group> GetGroupByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a group by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Group)</returns>
        System.Threading.Tasks.Task<ApiResponse<Group>> GetGroupByIdWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a group by tag.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.tag&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tag"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Group</returns>
        System.Threading.Tasks.Task<Group> GetGroupByTagAsync(string tag, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a group by tag.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.tag&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tag"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Group)</returns>
        System.Threading.Tasks.Task<ApiResponse<Group>> GetGroupByTagWithHttpInfoAsync(string tag, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a group by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Group</returns>
        System.Threading.Tasks.Task<Group> GetGroupByUuidAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a group by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Group)</returns>
        System.Threading.Tasks.Task<ApiResponse<Group>> GetGroupByUuidWithHttpInfoAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of games of a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GroupGame&gt;</returns>
        System.Threading.Tasks.Task<List<GroupGame>> GetGroupGamesAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of games of a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;GroupGame&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<GroupGame>>> GetGroupGamesWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of members in a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.member.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GroupMember&gt;</returns>
        System.Threading.Tasks.Task<List<GroupMember>> GetGroupMembersAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of members in a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.member.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;GroupMember&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<GroupMember>>> GetGroupMembersWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of groups.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Group&gt;</returns>
        System.Threading.Tasks.Task<List<Group>> GetGroupsAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of groups.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Group&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Group>>> GetGroupsWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a ip address location.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of IpAddress</returns>
        System.Threading.Tasks.Task<IpAddress> GetIpAddressAsync(string address, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a ip address location.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (IpAddress)</returns>
        System.Threading.Tasks.Task<ApiResponse<IpAddress>> GetIpAddressWithHttpInfoAsync(string address, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of ip addresses.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.geoip.address.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;IpAddress&gt;</returns>
        System.Threading.Tasks.Task<List<IpAddress>> GetIpAddressesAsync(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of ip addresses.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.geoip.address.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;IpAddress&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<IpAddress>>> GetIpAddressesWithHttpInfoAsync(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get the top 20 leaderboard users.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.leaderboard.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="order"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;LeaderboardItem&gt;</returns>
        System.Threading.Tasks.Task<List<LeaderboardItem>> GetLeaderboardAsync(LeaderboardOrder? order = default(LeaderboardOrder?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get the top 20 leaderboard users.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.leaderboard.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="order"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;LeaderboardItem&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<LeaderboardItem>>> GetLeaderboardWithHttpInfoAsync(LeaderboardOrder? order = default(LeaderboardOrder?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a package by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Package</returns>
        System.Threading.Tasks.Task<Package> GetPackageByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a package by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Package)</returns>
        System.Threading.Tasks.Task<ApiResponse<Package>> GetPackageByIdWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of packages.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Package&gt;</returns>
        System.Threading.Tasks.Task<List<Package>> GetPackagesAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of packages.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Package&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Package>>> GetPackagesWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get the public keys for the client.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task GetPublicKeysAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get the public keys for the client.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> GetPublicKeysWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a subscription by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Subscription</returns>
        System.Threading.Tasks.Task<Subscription> GetSubscriptionByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a subscription by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Subscription)</returns>
        System.Threading.Tasks.Task<ApiResponse<Subscription>> GetSubscriptionByIdWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of subscriptions.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Subscription&gt;</returns>
        System.Threading.Tasks.Task<List<Subscription>> GetSubscriptionsAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of subscriptions.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Subscription&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Subscription>>> GetSubscriptionsWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of connected accounts of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.account.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Account&gt;</returns>
        System.Threading.Tasks.Task<List<Account>> GetUserAccountsAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of connected accounts of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.account.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Account&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Account>>> GetUserAccountsWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of friends of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        System.Threading.Tasks.Task<List<Object>> GetUserFriendsAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of friends of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Object&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Object>>> GetUserFriendsWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of friends of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<Object>> GetUserFriendsV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of friends of the user.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Object&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<Object>>> GetUserFriendsV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of games the user has played.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ProfileGame&gt;</returns>
        System.Threading.Tasks.Task<List<ProfileGame>> GetUserGamesAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of games the user has played.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;ProfileGame&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<ProfileGame>>> GetUserGamesWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of games the user has played.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ProfileGame&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<ProfileGame>> GetUserGamesV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of games the user has played.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;ProfileGame&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<ProfileGame>>> GetUserGamesV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of groups the user is a member of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ProfileGroup&gt;</returns>
        System.Threading.Tasks.Task<List<ProfileGroup>> GetUserGroupsAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of groups the user is a member of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;ProfileGroup&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<ProfileGroup>>> GetUserGroupsWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of groups the user is a member of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ProfileGroup&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<ProfileGroup>> GetUserGroupsV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of groups the user is a member of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;ProfileGroup&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<ProfileGroup>>> GetUserGroupsV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get current user information.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.user.info&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of UserInfo</returns>
        System.Threading.Tasks.Task<UserInfo> GetUserInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get current user information.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.user.info&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (UserInfo)</returns>
        System.Threading.Tasks.Task<ApiResponse<UserInfo>> GetUserInfoWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a user profile by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        System.Threading.Tasks.Task<Profile> GetUserProfileByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a user profile by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Profile)</returns>
        System.Threading.Tasks.Task<ApiResponse<Profile>> GetUserProfileByIdWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a user profile by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        [Obsolete]
        System.Threading.Tasks.Task<Profile> GetUserProfileByIdV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a user profile by id.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Profile)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Profile>> GetUserProfileByIdV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a user profile by name.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param 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 Profile</returns>
        System.Threading.Tasks.Task<Profile> GetUserProfileByNameAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a user profile by name.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param 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 (Profile)</returns>
        System.Threading.Tasks.Task<ApiResponse<Profile>> GetUserProfileByNameWithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a user profile by name.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param 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 Profile</returns>
        [Obsolete]
        System.Threading.Tasks.Task<Profile> GetUserProfileByNameV1Async(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a user profile by name.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param 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 (Profile)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Profile>> GetUserProfileByNameV1WithHttpInfoAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a user profile by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        System.Threading.Tasks.Task<Profile> GetUserProfileByUuidAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a user profile by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Profile)</returns>
        System.Threading.Tasks.Task<ApiResponse<Profile>> GetUserProfileByUuidWithHttpInfoAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a user profile by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        [Obsolete]
        System.Threading.Tasks.Task<Profile> GetUserProfileByUuidV1Async(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a user profile by uuid.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Profile)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Profile>> GetUserProfileByUuidV1WithHttpInfoAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of user profiles.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Profile&gt;</returns>
        System.Threading.Tasks.Task<List<Profile>> GetUserProfilesAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of user profiles.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Profile&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Profile>>> GetUserProfilesWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of user profiles.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Profile&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<Profile>> GetUserProfilesV1Async(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of user profiles.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Profile&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<Profile>>> GetUserProfilesV1WithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of sanctions the user has received.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        System.Threading.Tasks.Task<List<Object>> GetUserSanctionsAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of sanctions the user has received.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Object&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Object>>> GetUserSanctionsWithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of sanctions the user has received.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<Object>> GetUserSanctionsV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of sanctions the user has received.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Object&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<Object>>> GetUserSanctionsV1WithHttpInfoAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of servers the user is owner of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        System.Threading.Tasks.Task<List<GameServer>> GetUserServersAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of servers the user is owner of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<GameServer>>> GetUserServersWithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Get a list of servers the user is owner of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        [Obsolete]
        System.Threading.Tasks.Task<List<GameServer>> GetUserServersV1Async(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Get a list of servers the user is owner of.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<List<GameServer>>> GetUserServersV1WithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Hash a string using argon2.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.argon2&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        System.Threading.Tasks.Task<HashViewModel> HashArgon2Async(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Hash a string using argon2.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.argon2&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        System.Threading.Tasks.Task<ApiResponse<HashViewModel>> HashArgon2WithHttpInfoAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Hash a string using bcrypt.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.bcrypt&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        System.Threading.Tasks.Task<HashViewModel> HashBcryptAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Hash a string using bcrypt.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.bcrypt&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        System.Threading.Tasks.Task<ApiResponse<HashViewModel>> HashBcryptWithHttpInfoAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Hash a string using md5.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.md5&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        System.Threading.Tasks.Task<HashViewModel> HashMd5Async(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Hash a string using md5.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.md5&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        System.Threading.Tasks.Task<ApiResponse<HashViewModel>> HashMd5WithHttpInfoAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Hash a string using sha256.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.sha256&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        System.Threading.Tasks.Task<HashViewModel> HashSha256Async(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Hash a string using sha256.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.sha256&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        System.Threading.Tasks.Task<ApiResponse<HashViewModel>> HashSha256WithHttpInfoAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Introspect a token.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="introspectRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of IntrospectResponse</returns>
        System.Threading.Tasks.Task<IntrospectResponse> IntrospectTokenAsync(IntrospectRequest? introspectRequest = default(IntrospectRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Introspect a token.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="introspectRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (IntrospectResponse)</returns>
        System.Threading.Tasks.Task<ApiResponse<IntrospectResponse>> IntrospectTokenWithHttpInfoAsync(IntrospectRequest? introspectRequest = default(IntrospectRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Revoke a token.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="revokeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task RevokeTokenAsync(RevokeRequest? revokeRequest = default(RevokeRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Revoke a token.
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="revokeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> RevokeTokenWithHttpInfoAsync(RevokeRequest? revokeRequest = default(RevokeRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Advanced search.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.search&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="search"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        System.Threading.Tasks.Task<List<Object>> SearchAsync(Search? search = default(Search?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Advanced search.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.search&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="search"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Object&gt;)</returns>
        System.Threading.Tasks.Task<ApiResponse<List<Object>>> SearchWithHttpInfoAsync(Search? search = default(Search?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        System.Threading.Tasks.Task UpdateClientAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update an oauth2 client.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> UpdateClientWithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        System.Threading.Tasks.Task UpdateGameServerAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> UpdateGameServerWithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        System.Threading.Tasks.Task UpdateGameServerClusterAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> UpdateGameServerClusterWithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        [Obsolete]
        System.Threading.Tasks.Task UpdateGameServerClusterV1Async(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update a game server cluster.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Object>> UpdateGameServerClusterV1WithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        [Obsolete]
        System.Threading.Tasks.Task UpdateGameServerV1Async(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update a game server.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Object>> UpdateGameServerV1WithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        System.Threading.Tasks.Task UpdateGroupAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update a group.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> UpdateGroupWithHttpInfoAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update an package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="package"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        System.Threading.Tasks.Task UpdatePackageAsync(string id, Package? package = default(Package?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update an package.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="package"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse</returns>
        System.Threading.Tasks.Task<ApiResponse<Object>> UpdatePackageWithHttpInfoAsync(string id, Package? package = default(Package?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update a user profile.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        System.Threading.Tasks.Task<Profile> UpdateUserProfileAsync(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update a user profile.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Profile)</returns>
        System.Threading.Tasks.Task<ApiResponse<Profile>> UpdateUserProfileWithHttpInfoAsync(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
        /// <summary>
        /// Update a user profile.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        [Obsolete]
        System.Threading.Tasks.Task<Profile> UpdateUserProfileV1Async(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));

        /// <summary>
        /// Update a user profile.
        /// </summary>
        /// <remarks>
        /// &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </remarks>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Profile)</returns>
        [Obsolete]
        System.Threading.Tasks.Task<ApiResponse<Profile>> UpdateUserProfileV1WithHttpInfoAsync(string id, UpdateProfile? updateProfile = default(UpdateProfile?), 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 ITribufuGeneratedApi : ITribufuGeneratedApiSync, ITribufuGeneratedApiAsync
    {

    }

    /// <summary>
    /// Represents a collection of functions to interact with the API endpoints
    /// </summary>
    public partial class TribufuGeneratedApi : ITribufuGeneratedApi
    {
        private Tribufu.Client.ExceptionFactory _exceptionFactory = (name, response) => null;

        /// <summary>
        /// Initializes a new instance of the <see cref="TribufuGeneratedApi"/> class.
        /// </summary>
        /// <returns></returns>
        public TribufuGeneratedApi() : this((string)null)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="TribufuGeneratedApi"/> class.
        /// </summary>
        /// <returns></returns>
        public TribufuGeneratedApi(string basePath)
        {
            this.Configuration = Tribufu.Client.Configuration.MergeConfigurations(
                Tribufu.Client.GlobalConfiguration.Instance,
                new Tribufu.Client.Configuration { BasePath = basePath }
            );
            this.Client = new Tribufu.Client.ApiClient(this.Configuration.BasePath);
            this.AsynchronousClient = new Tribufu.Client.ApiClient(this.Configuration.BasePath);
            this.ExceptionFactory = Tribufu.Client.Configuration.DefaultExceptionFactory;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="TribufuGeneratedApi"/> class
        /// using Configuration object
        /// </summary>
        /// <param name="configuration">An instance of Configuration</param>
        /// <returns></returns>
        public TribufuGeneratedApi(Tribufu.Client.Configuration configuration)
        {
            if (configuration == null) throw new ArgumentNullException("configuration");

            this.Configuration = Tribufu.Client.Configuration.MergeConfigurations(
                Tribufu.Client.GlobalConfiguration.Instance,
                configuration
            );
            this.Client = new Tribufu.Client.ApiClient(this.Configuration.BasePath);
            this.AsynchronousClient = new Tribufu.Client.ApiClient(this.Configuration.BasePath);
            ExceptionFactory = Tribufu.Client.Configuration.DefaultExceptionFactory;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="TribufuGeneratedApi"/> 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 TribufuGeneratedApi(Tribufu.Client.ISynchronousClient client, Tribufu.Client.IAsynchronousClient asyncClient, Tribufu.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 = Tribufu.Client.Configuration.DefaultExceptionFactory;
        }

        /// <summary>
        /// The client for accessing this underlying API asynchronously.
        /// </summary>
        public Tribufu.Client.IAsynchronousClient AsynchronousClient { get; set; }

        /// <summary>
        /// The client for accessing this underlying API synchronously.
        /// </summary>
        public Tribufu.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 Tribufu.Client.IReadableConfiguration Configuration { get; set; }

        /// <summary>
        /// Provides a factory method hook for the creation of exceptions.
        /// </summary>
        public Tribufu.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>
        /// Authorize the client to access the user information. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.authorize&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="authorizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CodeResponse</returns>
        public CodeResponse Authorize(AuthorizeRequest? authorizeRequest = default(AuthorizeRequest?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<CodeResponse> localVarResponse = AuthorizeWithHttpInfo(authorizeRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Authorize the client to access the user information. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.authorize&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="authorizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CodeResponse</returns>
        public Tribufu.Client.ApiResponse<CodeResponse> AuthorizeWithHttpInfo(AuthorizeRequest? authorizeRequest = default(AuthorizeRequest?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = authorizeRequest;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.Authorize";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<CodeResponse>("/v1/oauth2/authorize", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("Authorize", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Authorize the client to access the user information. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.authorize&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="authorizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CodeResponse</returns>
        public async System.Threading.Tasks.Task<CodeResponse> AuthorizeAsync(AuthorizeRequest? authorizeRequest = default(AuthorizeRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<CodeResponse> localVarResponse = await AuthorizeWithHttpInfoAsync(authorizeRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Authorize the client to access the user information. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.authorize&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="authorizeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CodeResponse)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<CodeResponse>> AuthorizeWithHttpInfoAsync(AuthorizeRequest? authorizeRequest = default(AuthorizeRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = authorizeRequest;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.Authorize";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CodeResponse>("/v1/oauth2/authorize", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("Authorize", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Change the email of a user. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.email.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void ChangeEmail(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            ChangeEmailWithHttpInfo(id, body);
        }

        /// <summary>
        /// Change the email of a user. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.email.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> ChangeEmailWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->ChangeEmail");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json-patch+json",
                "application/json",
                "text/json",
                "application/*+json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ChangeEmail";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/users/{id}/email", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ChangeEmail", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Change the email of a user. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.email.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        public async System.Threading.Tasks.Task ChangeEmailAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await ChangeEmailWithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Change the email of a user. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.email.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> ChangeEmailWithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->ChangeEmail");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json-patch+json", 
                "application/json", 
                "text/json", 
                "application/*+json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ChangeEmail";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/users/{id}/email", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ChangeEmail", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Change the password of a user. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.password.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void ChangePassword(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            ChangePasswordWithHttpInfo(id, body);
        }

        /// <summary>
        /// Change the password of a user. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.password.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> ChangePasswordWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->ChangePassword");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json-patch+json",
                "application/json",
                "text/json",
                "application/*+json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ChangePassword";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/users/{id}/password", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ChangePassword", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Change the password of a user. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.password.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        public async System.Threading.Tasks.Task ChangePasswordAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await ChangePasswordWithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Change the password of a user. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.password.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> ChangePasswordWithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->ChangePassword");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json-patch+json", 
                "application/json", 
                "text/json", 
                "application/*+json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ChangePassword";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/users/{id}/password", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ChangePassword", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Claim a game server. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void ClaimGameServer(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            ClaimGameServerWithHttpInfo(id, body);
        }

        /// <summary>
        /// Claim a game server. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> ClaimGameServerWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->ClaimGameServer");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ClaimGameServer";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/games/servers/{id}/claim", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ClaimGameServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Claim a game server. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        public async System.Threading.Tasks.Task ClaimGameServerAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await ClaimGameServerWithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Claim a game server. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> ClaimGameServerWithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->ClaimGameServer");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ClaimGameServer";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/games/servers/{id}/claim", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ClaimGameServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Claim a game server. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        public void ClaimGameServerV1(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            ClaimGameServerV1WithHttpInfo(id, body);
        }

        /// <summary>
        /// Claim a game server. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Object> ClaimGameServerV1WithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->ClaimGameServerV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ClaimGameServerV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/servers/{id}/claim", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ClaimGameServerV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Claim a game server. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task ClaimGameServerV1Async(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await ClaimGameServerV1WithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Claim a game server. This endpoint is not available with an api key, only with a bearer token.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.claim&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> ClaimGameServerV1WithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->ClaimGameServerV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ClaimGameServerV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/servers/{id}/claim", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ClaimGameServerV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Convert a string to base64 or vice versa. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.convert.base64&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cryptoViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>CryptoViewModel</returns>
        public CryptoViewModel ConvertBase64(CryptoViewModel? cryptoViewModel = default(CryptoViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<CryptoViewModel> localVarResponse = ConvertBase64WithHttpInfo(cryptoViewModel);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Convert a string to base64 or vice versa. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.convert.base64&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cryptoViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of CryptoViewModel</returns>
        public Tribufu.Client.ApiResponse<CryptoViewModel> ConvertBase64WithHttpInfo(CryptoViewModel? cryptoViewModel = default(CryptoViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = cryptoViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ConvertBase64";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<CryptoViewModel>("/v1/utils/base64", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ConvertBase64", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Convert a string to base64 or vice versa. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.convert.base64&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cryptoViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of CryptoViewModel</returns>
        public async System.Threading.Tasks.Task<CryptoViewModel> ConvertBase64Async(CryptoViewModel? cryptoViewModel = default(CryptoViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<CryptoViewModel> localVarResponse = await ConvertBase64WithHttpInfoAsync(cryptoViewModel, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Convert a string to base64 or vice versa. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.convert.base64&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="cryptoViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (CryptoViewModel)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<CryptoViewModel>> ConvertBase64WithHttpInfoAsync(CryptoViewModel? cryptoViewModel = default(CryptoViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = cryptoViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.ConvertBase64";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<CryptoViewModel>("/v1/utils/base64", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ConvertBase64", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void CreateClient(Object? body = default(Object?), int operationIndex = 0)
        {
            CreateClientWithHttpInfo(body);
        }

        /// <summary>
        /// Create an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> CreateClientWithHttpInfo(Object? body = default(Object?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateClient";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Object>("/v1/oauth2/clients", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClient", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        public async System.Threading.Tasks.Task CreateClientAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await CreateClientWithHttpInfoAsync(body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Create an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> CreateClientWithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateClient";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Object>("/v1/oauth2/clients", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateClient", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void CreateGameServer(Object? body = default(Object?), int operationIndex = 0)
        {
            CreateGameServerWithHttpInfo(body);
        }

        /// <summary>
        /// Create a new game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> CreateGameServerWithHttpInfo(Object? body = default(Object?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGameServer";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Object>("/v1/games/servers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGameServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        public async System.Threading.Tasks.Task CreateGameServerAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await CreateGameServerWithHttpInfoAsync(body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Create a new game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> CreateGameServerWithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGameServer";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Object>("/v1/games/servers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGameServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void CreateGameServerCluster(Object? body = default(Object?), int operationIndex = 0)
        {
            CreateGameServerClusterWithHttpInfo(body);
        }

        /// <summary>
        /// Create a new game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> CreateGameServerClusterWithHttpInfo(Object? body = default(Object?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGameServerCluster";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Object>("/v1/games/servers/clusters", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGameServerCluster", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        public async System.Threading.Tasks.Task CreateGameServerClusterAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await CreateGameServerClusterWithHttpInfoAsync(body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Create a new game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> CreateGameServerClusterWithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGameServerCluster";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Object>("/v1/games/servers/clusters", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGameServerCluster", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        public void CreateGameServerClusterV1(Object? body = default(Object?), int operationIndex = 0)
        {
            CreateGameServerClusterV1WithHttpInfo(body);
        }

        /// <summary>
        /// Create a new game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Object> CreateGameServerClusterV1WithHttpInfo(Object? body = default(Object?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGameServerClusterV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Object>("/v1/clusters", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGameServerClusterV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task CreateGameServerClusterV1Async(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await CreateGameServerClusterV1WithHttpInfoAsync(body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Create a new game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> CreateGameServerClusterV1WithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGameServerClusterV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Object>("/v1/clusters", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGameServerClusterV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        public void CreateGameServerV1(Object? body = default(Object?), int operationIndex = 0)
        {
            CreateGameServerV1WithHttpInfo(body);
        }

        /// <summary>
        /// Create a new game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Object> CreateGameServerV1WithHttpInfo(Object? body = default(Object?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGameServerV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Object>("/v1/servers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGameServerV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task CreateGameServerV1Async(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await CreateGameServerV1WithHttpInfoAsync(body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Create a new game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> CreateGameServerV1WithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGameServerV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Object>("/v1/servers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGameServerV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void CreateGroup(Object? body = default(Object?), int operationIndex = 0)
        {
            CreateGroupWithHttpInfo(body);
        }

        /// <summary>
        /// Create a new group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> CreateGroupWithHttpInfo(Object? body = default(Object?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGroup";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Object>("/v1/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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 void</returns>
        public async System.Threading.Tasks.Task CreateGroupAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await CreateGroupWithHttpInfoAsync(body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Create a new group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> CreateGroupWithHttpInfoAsync(Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateGroup";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Object>("/v1/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="image"></param>
        /// <param name="files"></param>
        /// <param name="version"></param>
        /// <param name="description"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Package</returns>
        public Package CreatePackage(string name, System.IO.Stream image, List<System.IO.Stream> files, string version, string? description = default(string?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Package> localVarResponse = CreatePackageWithHttpInfo(name, image, files, version, description);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Create a new package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="image"></param>
        /// <param name="files"></param>
        /// <param name="version"></param>
        /// <param name="description"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Package</returns>
        public Tribufu.Client.ApiResponse<Package> CreatePackageWithHttpInfo(string name, System.IO.Stream image, List<System.IO.Stream> files, string version, string? description = default(string?), int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'name' when calling TribufuGeneratedApi->CreatePackage");
            }

            // verify the required parameter 'image' is set
            if (image == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'image' when calling TribufuGeneratedApi->CreatePackage");
            }

            // verify the required parameter 'files' is set
            if (files == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'files' when calling TribufuGeneratedApi->CreatePackage");
            }

            // verify the required parameter 'version' is set
            if (version == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'version' when calling TribufuGeneratedApi->CreatePackage");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "multipart/form-data"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.FormParameters.Add("name", Tribufu.Client.ClientUtils.ParameterToString(name)); // form parameter
            if (description != null)
            {
                localVarRequestOptions.FormParameters.Add("description", Tribufu.Client.ClientUtils.ParameterToString(description)); // form parameter
            }
            localVarRequestOptions.FileParameters.Add("image", image);
            foreach (var file in files)
            {
                localVarRequestOptions.FileParameters.Add("files", file);
            }
            localVarRequestOptions.FormParameters.Add("version", Tribufu.Client.ClientUtils.ParameterToString(version)); // form parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreatePackage";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Package>("/v1/packages", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreatePackage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="image"></param>
        /// <param name="files"></param>
        /// <param name="version"></param>
        /// <param name="description"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Package</returns>
        public async System.Threading.Tasks.Task<Package> CreatePackageAsync(string name, System.IO.Stream image, List<System.IO.Stream> files, string version, string? description = default(string?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Package> localVarResponse = await CreatePackageWithHttpInfoAsync(name, image, files, version, description, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Create a new package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.create&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="image"></param>
        /// <param name="files"></param>
        /// <param name="version"></param>
        /// <param name="description"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Package)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Package>> CreatePackageWithHttpInfoAsync(string name, System.IO.Stream image, List<System.IO.Stream> files, string version, string? description = default(string?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'name' when calling TribufuGeneratedApi->CreatePackage");
            }

            // verify the required parameter 'image' is set
            if (image == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'image' when calling TribufuGeneratedApi->CreatePackage");
            }

            // verify the required parameter 'files' is set
            if (files == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'files' when calling TribufuGeneratedApi->CreatePackage");
            }

            // verify the required parameter 'version' is set
            if (version == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'version' when calling TribufuGeneratedApi->CreatePackage");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "multipart/form-data"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.FormParameters.Add("name", Tribufu.Client.ClientUtils.ParameterToString(name)); // form parameter
            if (description != null)
            {
                localVarRequestOptions.FormParameters.Add("description", Tribufu.Client.ClientUtils.ParameterToString(description)); // form parameter
            }
            localVarRequestOptions.FileParameters.Add("image", image);
            foreach (var file in files)
            {
                localVarRequestOptions.FileParameters.Add("files", file);
            }
            localVarRequestOptions.FormParameters.Add("version", Tribufu.Client.ClientUtils.ParameterToString(version)); // form parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreatePackage";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Package>("/v1/packages", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreatePackage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new token with grant type. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>TokenResponse</returns>
        public TokenResponse CreateToken(TokenRequest? tokenRequest = default(TokenRequest?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<TokenResponse> localVarResponse = CreateTokenWithHttpInfo(tokenRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Create a new token with grant type. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of TokenResponse</returns>
        public Tribufu.Client.ApiResponse<TokenResponse> CreateTokenWithHttpInfo(TokenRequest? tokenRequest = default(TokenRequest?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json",
                "application/x-www-form-urlencoded"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = tokenRequest;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateToken";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<TokenResponse>("/v1/oauth2/token", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateToken", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create a new token with grant type. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of TokenResponse</returns>
        public async System.Threading.Tasks.Task<TokenResponse> CreateTokenAsync(TokenRequest? tokenRequest = default(TokenRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<TokenResponse> localVarResponse = await CreateTokenWithHttpInfoAsync(tokenRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Create a new token with grant type. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tokenRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (TokenResponse)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<TokenResponse>> CreateTokenWithHttpInfoAsync(TokenRequest? tokenRequest = default(TokenRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json", 
                "application/x-www-form-urlencoded"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = tokenRequest;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateToken";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<TokenResponse>("/v1/oauth2/token", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateToken", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create an user. This endpoint is only available with client credentials.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createUser"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void CreateUser(CreateUser? createUser = default(CreateUser?), int operationIndex = 0)
        {
            CreateUserWithHttpInfo(createUser);
        }

        /// <summary>
        /// Create an user. This endpoint is only available with client credentials.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createUser"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> CreateUserWithHttpInfo(CreateUser? createUser = default(CreateUser?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createUser;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateUser";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Object>("/v1/users", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateUser", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Create an user. This endpoint is only available with client credentials.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createUser"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task CreateUserAsync(CreateUser? createUser = default(CreateUser?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await CreateUserWithHttpInfoAsync(createUser, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Create an user. This endpoint is only available with client credentials.
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="createUser"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> CreateUserWithHttpInfoAsync(CreateUser? createUser = default(CreateUser?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = createUser;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.CreateUser";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Object>("/v1/users", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateUser", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void DeleteClient(string id, int operationIndex = 0)
        {
            DeleteClientWithHttpInfo(id);
        }

        /// <summary>
        /// Delete an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> DeleteClientWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteClient");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteClient";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Delete<Object>("/v1/oauth2/clients/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClient", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task DeleteClientAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await DeleteClientWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Delete an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> DeleteClientWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteClient");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteClient";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<Object>("/v1/oauth2/clients/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteClient", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void DeleteGameServer(string id, int operationIndex = 0)
        {
            DeleteGameServerWithHttpInfo(id);
        }

        /// <summary>
        /// Delete a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> DeleteGameServerWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGameServer");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGameServer";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Delete<Object>("/v1/games/servers/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGameServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task DeleteGameServerAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await DeleteGameServerWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Delete a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> DeleteGameServerWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGameServer");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGameServer";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<Object>("/v1/games/servers/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGameServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void DeleteGameServerCluster(string id, int operationIndex = 0)
        {
            DeleteGameServerClusterWithHttpInfo(id);
        }

        /// <summary>
        /// Delete a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> DeleteGameServerClusterWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGameServerCluster");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGameServerCluster";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Delete<Object>("/v1/games/servers/clusters/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGameServerCluster", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task DeleteGameServerClusterAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await DeleteGameServerClusterWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Delete a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> DeleteGameServerClusterWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGameServerCluster");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGameServerCluster";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<Object>("/v1/games/servers/clusters/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGameServerCluster", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        public void DeleteGameServerClusterV1(string id, int operationIndex = 0)
        {
            DeleteGameServerClusterV1WithHttpInfo(id);
        }

        /// <summary>
        /// Delete a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Object> DeleteGameServerClusterV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGameServerClusterV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGameServerClusterV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Delete<Object>("/v1/clusters/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGameServerClusterV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task DeleteGameServerClusterV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await DeleteGameServerClusterV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Delete a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> DeleteGameServerClusterV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGameServerClusterV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGameServerClusterV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<Object>("/v1/clusters/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGameServerClusterV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        public void DeleteGameServerV1(string id, int operationIndex = 0)
        {
            DeleteGameServerV1WithHttpInfo(id);
        }

        /// <summary>
        /// Delete a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Object> DeleteGameServerV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGameServerV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGameServerV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Delete<Object>("/v1/servers/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGameServerV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task DeleteGameServerV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await DeleteGameServerV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Delete a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> DeleteGameServerV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGameServerV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGameServerV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<Object>("/v1/servers/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGameServerV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void DeleteGroup(string id, int operationIndex = 0)
        {
            DeleteGroupWithHttpInfo(id);
        }

        /// <summary>
        /// Delete a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> DeleteGroupWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGroup");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGroup";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Delete<Object>("/v1/groups/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task DeleteGroupAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await DeleteGroupWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Delete a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> DeleteGroupWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeleteGroup");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeleteGroup";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<Object>("/v1/groups/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeleteGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete an package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void DeletePackage(string id, int operationIndex = 0)
        {
            DeletePackageWithHttpInfo(id);
        }

        /// <summary>
        /// Delete an package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> DeletePackageWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeletePackage");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeletePackage";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Delete<Object>("/v1/packages/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeletePackage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Delete an package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task DeletePackageAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await DeletePackageWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Delete an package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.delete&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> DeletePackageWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->DeletePackage");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.DeletePackage";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.DeleteAsync<Object>("/v1/packages/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("DeletePackage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Generate one or more flake ids. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;string&gt;</returns>
        public List<string> GenerateFlakeId(int? amount = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<string>> localVarResponse = GenerateFlakeIdWithHttpInfo(amount);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Generate one or more flake ids. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;string&gt;</returns>
        public Tribufu.Client.ApiResponse<List<string>> GenerateFlakeIdWithHttpInfo(int? amount = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (amount != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "amount", amount));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GenerateFlakeId";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<string>>("/v1/utils/flake", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GenerateFlakeId", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Generate one or more flake ids. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;string&gt;</returns>
        public async System.Threading.Tasks.Task<List<string>> GenerateFlakeIdAsync(int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<string>> localVarResponse = await GenerateFlakeIdWithHttpInfoAsync(amount, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Generate one or more flake ids. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;string&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<string>>> GenerateFlakeIdWithHttpInfoAsync(int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (amount != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "amount", amount));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GenerateFlakeId";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<string>>("/v1/utils/flake", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GenerateFlakeId", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Generate one or more flake ids from a timestamp. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake.timestamp&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="timestamp"></param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;string&gt;</returns>
        public List<string> GenerateFlakeIdFromTimestamp(string timestamp, int? amount = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<string>> localVarResponse = GenerateFlakeIdFromTimestampWithHttpInfo(timestamp, amount);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Generate one or more flake ids from a timestamp. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake.timestamp&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="timestamp"></param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;string&gt;</returns>
        public Tribufu.Client.ApiResponse<List<string>> GenerateFlakeIdFromTimestampWithHttpInfo(string timestamp, int? amount = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'timestamp' is set
            if (timestamp == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'timestamp' when calling TribufuGeneratedApi->GenerateFlakeIdFromTimestamp");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("timestamp", Tribufu.Client.ClientUtils.ParameterToString(timestamp)); // path parameter
            if (amount != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "amount", amount));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GenerateFlakeIdFromTimestamp";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<string>>("/v1/utils/flake/{timestamp}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GenerateFlakeIdFromTimestamp", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Generate one or more flake ids from a timestamp. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake.timestamp&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="timestamp"></param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;string&gt;</returns>
        public async System.Threading.Tasks.Task<List<string>> GenerateFlakeIdFromTimestampAsync(string timestamp, int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<string>> localVarResponse = await GenerateFlakeIdFromTimestampWithHttpInfoAsync(timestamp, amount, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Generate one or more flake ids from a timestamp. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.flake.timestamp&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="timestamp"></param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;string&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<string>>> GenerateFlakeIdFromTimestampWithHttpInfoAsync(string timestamp, int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'timestamp' is set
            if (timestamp == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'timestamp' when calling TribufuGeneratedApi->GenerateFlakeIdFromTimestamp");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("timestamp", Tribufu.Client.ClientUtils.ParameterToString(timestamp)); // path parameter
            if (amount != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "amount", amount));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GenerateFlakeIdFromTimestamp";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<string>>("/v1/utils/flake/{timestamp}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GenerateFlakeIdFromTimestamp", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Generate a random password. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.password&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="length"> (optional)</param>
        /// <param name="symbols"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        public HashViewModel GeneratePassword(int? length = default(int?), bool? symbols = default(bool?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = GeneratePasswordWithHttpInfo(length, symbols);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Generate a random password. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.password&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="length"> (optional)</param>
        /// <param name="symbols"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        public Tribufu.Client.ApiResponse<HashViewModel> GeneratePasswordWithHttpInfo(int? length = default(int?), bool? symbols = default(bool?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (length != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "length", length));
            }
            if (symbols != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "symbols", symbols));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GeneratePassword";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<HashViewModel>("/v1/utils/password", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GeneratePassword", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Generate a random password. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.password&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="length"> (optional)</param>
        /// <param name="symbols"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        public async System.Threading.Tasks.Task<HashViewModel> GeneratePasswordAsync(int? length = default(int?), bool? symbols = default(bool?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = await GeneratePasswordWithHttpInfoAsync(length, symbols, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Generate a random password. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.password&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="length"> (optional)</param>
        /// <param name="symbols"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<HashViewModel>> GeneratePasswordWithHttpInfoAsync(int? length = default(int?), bool? symbols = default(bool?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (length != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "length", length));
            }
            if (symbols != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "symbols", symbols));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GeneratePassword";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<HashViewModel>("/v1/utils/password", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GeneratePassword", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Generate one or more uuids with a specific version. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="version"> (optional)</param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Guid&gt;</returns>
        public List<Guid> GenerateUuid(int? version = default(int?), int? amount = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Guid>> localVarResponse = GenerateUuidWithHttpInfo(version, amount);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Generate one or more uuids with a specific version. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="version"> (optional)</param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Guid&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Guid>> GenerateUuidWithHttpInfo(int? version = default(int?), int? amount = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (version != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "version", version));
            }
            if (amount != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "amount", amount));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GenerateUuid";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Guid>>("/v1/utils/uuid", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GenerateUuid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Generate one or more uuids with a specific version. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="version"> (optional)</param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Guid&gt;</returns>
        public async System.Threading.Tasks.Task<List<Guid>> GenerateUuidAsync(int? version = default(int?), int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Guid>> localVarResponse = await GenerateUuidWithHttpInfoAsync(version, amount, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Generate one or more uuids with a specific version. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.generate.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="version"> (optional)</param>
        /// <param name="amount"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Guid&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Guid>>> GenerateUuidWithHttpInfoAsync(int? version = default(int?), int? amount = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (version != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "version", version));
            }
            if (amount != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "amount", amount));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GenerateUuid";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Guid>>("/v1/utils/uuid", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GenerateUuid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get an oauth2 client by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ModelClient</returns>
        public ModelClient GetClientById(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<ModelClient> localVarResponse = GetClientByIdWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get an oauth2 client by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of ModelClient</returns>
        public Tribufu.Client.ApiResponse<ModelClient> GetClientByIdWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetClientById");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetClientById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<ModelClient>("/v1/oauth2/clients/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClientById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get an oauth2 client by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ModelClient</returns>
        public async System.Threading.Tasks.Task<ModelClient> GetClientByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<ModelClient> localVarResponse = await GetClientByIdWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get an oauth2 client by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (ModelClient)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<ModelClient>> GetClientByIdWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetClientById");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetClientById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<ModelClient>("/v1/oauth2/clients/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClientById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get current client information. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ClientInfo</returns>
        public ClientInfo GetClientInfo(int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<ClientInfo> localVarResponse = GetClientInfoWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get current client information. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of ClientInfo</returns>
        public Tribufu.Client.ApiResponse<ClientInfo> GetClientInfoWithHttpInfo(int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetClientInfo";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<ClientInfo>("/v1/oauth2/clientinfo", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClientInfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get current client information. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ClientInfo</returns>
        public async System.Threading.Tasks.Task<ClientInfo> GetClientInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<ClientInfo> localVarResponse = await GetClientInfoWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get current client information. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (ClientInfo)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<ClientInfo>> GetClientInfoWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetClientInfo";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<ClientInfo>("/v1/oauth2/clientinfo", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClientInfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of oauth2 clients. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ModelClient&gt;</returns>
        public List<ModelClient> GetClients(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<ModelClient>> localVarResponse = GetClientsWithHttpInfo(organizationId, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of oauth2 clients. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ModelClient&gt;</returns>
        public Tribufu.Client.ApiResponse<List<ModelClient>> GetClientsWithHttpInfo(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (organizationId != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "organization_id", organizationId));
            }
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetClients";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<ModelClient>>("/v1/oauth2/clients", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClients", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of oauth2 clients. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ModelClient&gt;</returns>
        public async System.Threading.Tasks.Task<List<ModelClient>> GetClientsAsync(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<ModelClient>> localVarResponse = await GetClientsWithHttpInfoAsync(organizationId, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of oauth2 clients. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;ModelClient&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<ModelClient>>> GetClientsWithHttpInfoAsync(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (organizationId != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "organization_id", organizationId));
            }
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetClients";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<ModelClient>>("/v1/oauth2/clients", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetClients", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get current ip address location. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;IpAddress&gt;</returns>
        public List<IpAddress> GetCurrentIpAddress(int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<IpAddress>> localVarResponse = GetCurrentIpAddressWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get current ip address location. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;IpAddress&gt;</returns>
        public Tribufu.Client.ApiResponse<List<IpAddress>> GetCurrentIpAddressWithHttpInfo(int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetCurrentIpAddress";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<IpAddress>>("/v1/geoip", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetCurrentIpAddress", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get current ip address location. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;IpAddress&gt;</returns>
        public async System.Threading.Tasks.Task<List<IpAddress>> GetCurrentIpAddressAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<IpAddress>> localVarResponse = await GetCurrentIpAddressWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get current ip address location. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (List&lt;IpAddress&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<IpAddress>>> GetCurrentIpAddressWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetCurrentIpAddress";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<IpAddress>>("/v1/geoip", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetCurrentIpAddress", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Game</returns>
        public Game GetGameById(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Game> localVarResponse = GetGameByIdWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Game</returns>
        public Tribufu.Client.ApiResponse<Game> GetGameByIdWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameById");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Game>("/v1/games/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Game</returns>
        public async System.Threading.Tasks.Task<Game> GetGameByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Game> localVarResponse = await GetGameByIdWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Game)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Game>> GetGameByIdWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameById");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Game>("/v1/games/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server by address and query port. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServer</returns>
        public GameServer GetGameServerByAddressAndQueryPort(string address, int port, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<GameServer> localVarResponse = GetGameServerByAddressAndQueryPortWithHttpInfo(address, port);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server by address and query port. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServer</returns>
        public Tribufu.Client.ApiResponse<GameServer> GetGameServerByAddressAndQueryPortWithHttpInfo(string address, int port, int operationIndex = 0)
        {
            // verify the required parameter 'address' is set
            if (address == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'address' when calling TribufuGeneratedApi->GetGameServerByAddressAndQueryPort");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("address", Tribufu.Client.ClientUtils.ParameterToString(address)); // path parameter
            localVarRequestOptions.PathParameters.Add("port", Tribufu.Client.ClientUtils.ParameterToString(port)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerByAddressAndQueryPort";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<GameServer>("/v1/games/servers/address/{address}:{port}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerByAddressAndQueryPort", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server by address and query port. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServer</returns>
        public async System.Threading.Tasks.Task<GameServer> GetGameServerByAddressAndQueryPortAsync(string address, int port, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<GameServer> localVarResponse = await GetGameServerByAddressAndQueryPortWithHttpInfoAsync(address, port, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server by address and query port. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GameServer)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<GameServer>> GetGameServerByAddressAndQueryPortWithHttpInfoAsync(string address, int port, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'address' is set
            if (address == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'address' when calling TribufuGeneratedApi->GetGameServerByAddressAndQueryPort");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("address", Tribufu.Client.ClientUtils.ParameterToString(address)); // path parameter
            localVarRequestOptions.PathParameters.Add("port", Tribufu.Client.ClientUtils.ParameterToString(port)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerByAddressAndQueryPort";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GameServer>("/v1/games/servers/address/{address}:{port}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerByAddressAndQueryPort", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server by address and query port. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServer</returns>
        [Obsolete]
        public GameServer GetGameServerByAddressAndQueryPortV1(string address, int port, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<GameServer> localVarResponse = GetGameServerByAddressAndQueryPortV1WithHttpInfo(address, port);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server by address and query port. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServer</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<GameServer> GetGameServerByAddressAndQueryPortV1WithHttpInfo(string address, int port, int operationIndex = 0)
        {
            // verify the required parameter 'address' is set
            if (address == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'address' when calling TribufuGeneratedApi->GetGameServerByAddressAndQueryPortV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("address", Tribufu.Client.ClientUtils.ParameterToString(address)); // path parameter
            localVarRequestOptions.PathParameters.Add("port", Tribufu.Client.ClientUtils.ParameterToString(port)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerByAddressAndQueryPortV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<GameServer>("/v1/servers/address/{address}:{port}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerByAddressAndQueryPortV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server by address and query port. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServer</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<GameServer> GetGameServerByAddressAndQueryPortV1Async(string address, int port, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<GameServer> localVarResponse = await GetGameServerByAddressAndQueryPortV1WithHttpInfoAsync(address, port, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server by address and query port. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get.address&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="port"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (GameServer)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<GameServer>> GetGameServerByAddressAndQueryPortV1WithHttpInfoAsync(string address, int port, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'address' is set
            if (address == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'address' when calling TribufuGeneratedApi->GetGameServerByAddressAndQueryPortV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("address", Tribufu.Client.ClientUtils.ParameterToString(address)); // path parameter
            localVarRequestOptions.PathParameters.Add("port", Tribufu.Client.ClientUtils.ParameterToString(port)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerByAddressAndQueryPortV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GameServer>("/v1/servers/address/{address}:{port}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerByAddressAndQueryPortV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServer</returns>
        public GameServer GetGameServerById(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<GameServer> localVarResponse = GetGameServerByIdWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServer</returns>
        public Tribufu.Client.ApiResponse<GameServer> GetGameServerByIdWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerById");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<GameServer>("/v1/games/servers/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServer</returns>
        public async System.Threading.Tasks.Task<GameServer> GetGameServerByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<GameServer> localVarResponse = await GetGameServerByIdWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (GameServer)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<GameServer>> GetGameServerByIdWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerById");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GameServer>("/v1/games/servers/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServer</returns>
        [Obsolete]
        public GameServer GetGameServerByIdV1(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<GameServer> localVarResponse = GetGameServerByIdV1WithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServer</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<GameServer> GetGameServerByIdV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerByIdV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerByIdV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<GameServer>("/v1/servers/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerByIdV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServer</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<GameServer> GetGameServerByIdV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<GameServer> localVarResponse = await GetGameServerByIdV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (GameServer)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<GameServer>> GetGameServerByIdV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerByIdV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerByIdV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GameServer>("/v1/servers/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerByIdV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server cluster by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServerCluster</returns>
        public GameServerCluster GetGameServerClusterById(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<GameServerCluster> localVarResponse = GetGameServerClusterByIdWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server cluster by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServerCluster</returns>
        public Tribufu.Client.ApiResponse<GameServerCluster> GetGameServerClusterByIdWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerClusterById");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusterById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<GameServerCluster>("/v1/games/servers/clusters/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusterById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server cluster by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServerCluster</returns>
        public async System.Threading.Tasks.Task<GameServerCluster> GetGameServerClusterByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<GameServerCluster> localVarResponse = await GetGameServerClusterByIdWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server cluster by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (GameServerCluster)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<GameServerCluster>> GetGameServerClusterByIdWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerClusterById");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusterById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GameServerCluster>("/v1/games/servers/clusters/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusterById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server cluster by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>GameServerCluster</returns>
        [Obsolete]
        public GameServerCluster GetGameServerClusterByIdV1(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<GameServerCluster> localVarResponse = GetGameServerClusterByIdV1WithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server cluster by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of GameServerCluster</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<GameServerCluster> GetGameServerClusterByIdV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerClusterByIdV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusterByIdV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<GameServerCluster>("/v1/clusters/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusterByIdV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server cluster by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of GameServerCluster</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<GameServerCluster> GetGameServerClusterByIdV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<GameServerCluster> localVarResponse = await GetGameServerClusterByIdV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server cluster by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (GameServerCluster)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<GameServerCluster>> GetGameServerClusterByIdV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerClusterByIdV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusterByIdV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<GameServerCluster>("/v1/clusters/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusterByIdV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game server cluster servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        public List<Object> GetGameServerClusterServers(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = GetGameServerClusterServersWithHttpInfo(id, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game server cluster servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Object>> GetGameServerClusterServersWithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerClusterServers");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusterServers";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Object>>("/v1/games/servers/clusters/{id}/servers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusterServers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game server cluster servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        public async System.Threading.Tasks.Task<List<Object>> GetGameServerClusterServersAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = await GetGameServerClusterServersWithHttpInfoAsync(id, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game server cluster servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Object&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Object>>> GetGameServerClusterServersWithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerClusterServers");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusterServers";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Object>>("/v1/games/servers/clusters/{id}/servers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusterServers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game server cluster servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        [Obsolete]
        public List<Object> GetGameServerClusterServersV1(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = GetGameServerClusterServersV1WithHttpInfo(id, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game server cluster servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<Object>> GetGameServerClusterServersV1WithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerClusterServersV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusterServersV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Object>>("/v1/clusters/{id}/servers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusterServersV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game server cluster servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<Object>> GetGameServerClusterServersV1Async(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = await GetGameServerClusterServersV1WithHttpInfoAsync(id, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game server cluster servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Object&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Object>>> GetGameServerClusterServersV1WithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerClusterServersV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusterServersV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Object>>("/v1/clusters/{id}/servers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusterServersV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game server clusters. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServerCluster&gt;</returns>
        public List<GameServerCluster> GetGameServerClusters(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServerCluster>> localVarResponse = GetGameServerClustersWithHttpInfo(page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game server clusters. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServerCluster&gt;</returns>
        public Tribufu.Client.ApiResponse<List<GameServerCluster>> GetGameServerClustersWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusters";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServerCluster>>("/v1/games/servers/clusters", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusters", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game server clusters. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServerCluster&gt;</returns>
        public async System.Threading.Tasks.Task<List<GameServerCluster>> GetGameServerClustersAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServerCluster>> localVarResponse = await GetGameServerClustersWithHttpInfoAsync(page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game server clusters. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServerCluster&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServerCluster>>> GetGameServerClustersWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClusters";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServerCluster>>("/v1/games/servers/clusters", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClusters", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game server clusters. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServerCluster&gt;</returns>
        [Obsolete]
        public List<GameServerCluster> GetGameServerClustersV1(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServerCluster>> localVarResponse = GetGameServerClustersV1WithHttpInfo(page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game server clusters. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServerCluster&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<GameServerCluster>> GetGameServerClustersV1WithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClustersV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServerCluster>>("/v1/clusters", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClustersV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game server clusters. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServerCluster&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<GameServerCluster>> GetGameServerClustersV1Async(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServerCluster>> localVarResponse = await GetGameServerClustersV1WithHttpInfoAsync(page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game server clusters. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServerCluster&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServerCluster>>> GetGameServerClustersV1WithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerClustersV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServerCluster>>("/v1/clusters", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerClustersV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server query history. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServerQuery&gt;</returns>
        public List<GameServerQuery> GetGameServerQueries(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServerQuery>> localVarResponse = GetGameServerQueriesWithHttpInfo(id, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server query history. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServerQuery&gt;</returns>
        public Tribufu.Client.ApiResponse<List<GameServerQuery>> GetGameServerQueriesWithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerQueries");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerQueries";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServerQuery>>("/v1/games/servers/{id}/queries", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerQueries", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server query history. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServerQuery&gt;</returns>
        public async System.Threading.Tasks.Task<List<GameServerQuery>> GetGameServerQueriesAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServerQuery>> localVarResponse = await GetGameServerQueriesWithHttpInfoAsync(id, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server query history. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServerQuery&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServerQuery>>> GetGameServerQueriesWithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerQueries");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerQueries";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServerQuery>>("/v1/games/servers/{id}/queries", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerQueries", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server query history. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServerQuery&gt;</returns>
        [Obsolete]
        public List<GameServerQuery> GetGameServerQueriesV1(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServerQuery>> localVarResponse = GetGameServerQueriesV1WithHttpInfo(id, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server query history. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServerQuery&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<GameServerQuery>> GetGameServerQueriesV1WithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerQueriesV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerQueriesV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServerQuery>>("/v1/servers/{id}/queries", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerQueriesV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a game server query history. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServerQuery&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<GameServerQuery>> GetGameServerQueriesV1Async(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServerQuery>> localVarResponse = await GetGameServerQueriesV1WithHttpInfoAsync(id, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a game server query history. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.queries&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServerQuery&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServerQuery>>> GetGameServerQueriesV1WithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGameServerQueriesV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServerQueriesV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServerQuery>>("/v1/servers/{id}/queries", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServerQueriesV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        public List<GameServer> GetGameServers(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = GetGameServersWithHttpInfo(address, queryPort, country, gameId, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        public Tribufu.Client.ApiResponse<List<GameServer>> GetGameServersWithHttpInfo(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (address != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "address", address));
            }
            if (queryPort != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "query_port", queryPort));
            }
            if (country != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "country", country));
            }
            if (gameId != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "game_id", gameId));
            }
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServers";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServer>>("/v1/games/servers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        public async System.Threading.Tasks.Task<List<GameServer>> GetGameServersAsync(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = await GetGameServersWithHttpInfoAsync(address, queryPort, country, gameId, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServer>>> GetGameServersWithHttpInfoAsync(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (address != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "address", address));
            }
            if (queryPort != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "query_port", queryPort));
            }
            if (country != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "country", country));
            }
            if (gameId != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "game_id", gameId));
            }
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServers";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServer>>("/v1/games/servers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game servers from a country. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        public List<GameServer> GetGameServersByCountry(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = GetGameServersByCountryWithHttpInfo(country, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game servers from a country. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        public Tribufu.Client.ApiResponse<List<GameServer>> GetGameServersByCountryWithHttpInfo(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'country' is set
            if (country == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'country' when calling TribufuGeneratedApi->GetGameServersByCountry");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("country", Tribufu.Client.ClientUtils.ParameterToString(country)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersByCountry";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServer>>("/v1/games/servers/country/{country}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersByCountry", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game servers from a country. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        public async System.Threading.Tasks.Task<List<GameServer>> GetGameServersByCountryAsync(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = await GetGameServersByCountryWithHttpInfoAsync(country, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game servers from a country. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServer>>> GetGameServersByCountryWithHttpInfoAsync(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'country' is set
            if (country == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'country' when calling TribufuGeneratedApi->GetGameServersByCountry");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("country", Tribufu.Client.ClientUtils.ParameterToString(country)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersByCountry";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServer>>("/v1/games/servers/country/{country}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersByCountry", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game servers from a country. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        [Obsolete]
        public List<GameServer> GetGameServersByCountryV1(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = GetGameServersByCountryV1WithHttpInfo(country, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game servers from a country. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<GameServer>> GetGameServersByCountryV1WithHttpInfo(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'country' is set
            if (country == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'country' when calling TribufuGeneratedApi->GetGameServersByCountryV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("country", Tribufu.Client.ClientUtils.ParameterToString(country)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersByCountryV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServer>>("/v1/servers/country/{country}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersByCountryV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game servers from a country. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<GameServer>> GetGameServersByCountryV1Async(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = await GetGameServersByCountryV1WithHttpInfoAsync(country, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game servers from a country. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list.country&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="country"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServer>>> GetGameServersByCountryV1WithHttpInfoAsync(string country, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'country' is set
            if (country == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'country' when calling TribufuGeneratedApi->GetGameServersByCountryV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("country", Tribufu.Client.ClientUtils.ParameterToString(country)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersByCountryV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServer>>("/v1/servers/country/{country}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersByCountryV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of countries with the number of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Dictionary&lt;string, int&gt;</returns>
        public Dictionary<string, int> GetGameServersCountries(int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Dictionary<string, int>> localVarResponse = GetGameServersCountriesWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of countries with the number of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Dictionary&lt;string, int&gt;</returns>
        public Tribufu.Client.ApiResponse<Dictionary<string, int>> GetGameServersCountriesWithHttpInfo(int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersCountries";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Dictionary<string, int>>("/v1/games/servers/countries", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersCountries", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of countries with the number of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Dictionary&lt;string, int&gt;</returns>
        public async System.Threading.Tasks.Task<Dictionary<string, int>> GetGameServersCountriesAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Dictionary<string, int>> localVarResponse = await GetGameServersCountriesWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of countries with the number of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (Dictionary&lt;string, int&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Dictionary<string, int>>> GetGameServersCountriesWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersCountries";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Dictionary<string, int>>("/v1/games/servers/countries", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersCountries", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of countries with the number of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Dictionary&lt;string, int&gt;</returns>
        [Obsolete]
        public Dictionary<string, int> GetGameServersCountriesV1(int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Dictionary<string, int>> localVarResponse = GetGameServersCountriesV1WithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of countries with the number of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Dictionary&lt;string, int&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Dictionary<string, int>> GetGameServersCountriesV1WithHttpInfo(int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersCountriesV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Dictionary<string, int>>("/v1/servers/countries", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersCountriesV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of countries with the number of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Dictionary&lt;string, int&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Dictionary<string, int>> GetGameServersCountriesV1Async(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Dictionary<string, int>> localVarResponse = await GetGameServersCountriesV1WithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of countries with the number of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.country.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (Dictionary&lt;string, int&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Dictionary<string, int>>> GetGameServersCountriesV1WithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersCountriesV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Dictionary<string, int>>("/v1/servers/countries", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersCountriesV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get metrics about the tracked game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ServerMetrics</returns>
        public ServerMetrics GetGameServersMetrics(int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<ServerMetrics> localVarResponse = GetGameServersMetricsWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get metrics about the tracked game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of ServerMetrics</returns>
        public Tribufu.Client.ApiResponse<ServerMetrics> GetGameServersMetricsWithHttpInfo(int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersMetrics";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<ServerMetrics>("/v1/games/servers/metrics", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersMetrics", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get metrics about the tracked game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ServerMetrics</returns>
        public async System.Threading.Tasks.Task<ServerMetrics> GetGameServersMetricsAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<ServerMetrics> localVarResponse = await GetGameServersMetricsWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get metrics about the tracked game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (ServerMetrics)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<ServerMetrics>> GetGameServersMetricsWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersMetrics";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<ServerMetrics>("/v1/games/servers/metrics", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersMetrics", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get metrics about the tracked game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ServerMetrics</returns>
        [Obsolete]
        public ServerMetrics GetGameServersMetricsV1(int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<ServerMetrics> localVarResponse = GetGameServersMetricsV1WithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get metrics about the tracked game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of ServerMetrics</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<ServerMetrics> GetGameServersMetricsV1WithHttpInfo(int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersMetricsV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<ServerMetrics>("/v1/servers/metrics", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersMetricsV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get metrics about the tracked game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ServerMetrics</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<ServerMetrics> GetGameServersMetricsV1Async(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<ServerMetrics> localVarResponse = await GetGameServersMetricsV1WithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get metrics about the tracked game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.metric.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (ServerMetrics)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<ServerMetrics>> GetGameServersMetricsV1WithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersMetricsV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<ServerMetrics>("/v1/servers/metrics", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersMetricsV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        [Obsolete]
        public List<GameServer> GetGameServersV1(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = GetGameServersV1WithHttpInfo(address, queryPort, country, gameId, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<GameServer>> GetGameServersV1WithHttpInfo(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (address != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "address", address));
            }
            if (queryPort != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "query_port", queryPort));
            }
            if (country != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "country", country));
            }
            if (gameId != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "game_id", gameId));
            }
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServer>>("/v1/servers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<GameServer>> GetGameServersV1Async(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = await GetGameServersV1WithHttpInfoAsync(address, queryPort, country, gameId, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of game servers. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"> (optional)</param>
        /// <param name="queryPort"> (optional)</param>
        /// <param name="country"> (optional)</param>
        /// <param name="gameId"> (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServer>>> GetGameServersV1WithHttpInfoAsync(string? address = default(string?), int? queryPort = default(int?), string? country = default(string?), string? gameId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (address != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "address", address));
            }
            if (queryPort != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "query_port", queryPort));
            }
            if (country != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "country", country));
            }
            if (gameId != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "game_id", gameId));
            }
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGameServersV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServer>>("/v1/servers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGameServersV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of games. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Game&gt;</returns>
        public List<Game> GetGames(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Game>> localVarResponse = GetGamesWithHttpInfo(page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of games. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Game&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Game>> GetGamesWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGames";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Game>>("/v1/games", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGames", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of games. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Game&gt;</returns>
        public async System.Threading.Tasks.Task<List<Game>> GetGamesAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Game>> localVarResponse = await GetGamesWithHttpInfoAsync(page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of games. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Game&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Game>>> GetGamesWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGames";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Game>>("/v1/games", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGames", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a group by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Group</returns>
        public Group GetGroupById(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Group> localVarResponse = GetGroupByIdWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a group by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Group</returns>
        public Tribufu.Client.ApiResponse<Group> GetGroupByIdWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGroupById");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Group>("/v1/groups/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a group by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Group</returns>
        public async System.Threading.Tasks.Task<Group> GetGroupByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Group> localVarResponse = await GetGroupByIdWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a group by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Group)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Group>> GetGroupByIdWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGroupById");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Group>("/v1/groups/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a group by tag. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.tag&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tag"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Group</returns>
        public Group GetGroupByTag(string tag, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Group> localVarResponse = GetGroupByTagWithHttpInfo(tag);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a group by tag. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.tag&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tag"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Group</returns>
        public Tribufu.Client.ApiResponse<Group> GetGroupByTagWithHttpInfo(string tag, int operationIndex = 0)
        {
            // verify the required parameter 'tag' is set
            if (tag == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'tag' when calling TribufuGeneratedApi->GetGroupByTag");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tag", Tribufu.Client.ClientUtils.ParameterToString(tag)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupByTag";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Group>("/v1/groups/tag/{tag}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupByTag", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a group by tag. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.tag&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tag"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Group</returns>
        public async System.Threading.Tasks.Task<Group> GetGroupByTagAsync(string tag, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Group> localVarResponse = await GetGroupByTagWithHttpInfoAsync(tag, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a group by tag. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.tag&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="tag"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Group)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Group>> GetGroupByTagWithHttpInfoAsync(string tag, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'tag' is set
            if (tag == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'tag' when calling TribufuGeneratedApi->GetGroupByTag");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("tag", Tribufu.Client.ClientUtils.ParameterToString(tag)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupByTag";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Group>("/v1/groups/tag/{tag}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupByTag", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a group by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Group</returns>
        public Group GetGroupByUuid(Guid uuid, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Group> localVarResponse = GetGroupByUuidWithHttpInfo(uuid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a group by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Group</returns>
        public Tribufu.Client.ApiResponse<Group> GetGroupByUuidWithHttpInfo(Guid uuid, int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("uuid", Tribufu.Client.ClientUtils.ParameterToString(uuid)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupByUuid";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Group>("/v1/groups/uuid/{uuid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupByUuid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a group by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Group</returns>
        public async System.Threading.Tasks.Task<Group> GetGroupByUuidAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Group> localVarResponse = await GetGroupByUuidWithHttpInfoAsync(uuid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a group by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Group)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Group>> GetGroupByUuidWithHttpInfoAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("uuid", Tribufu.Client.ClientUtils.ParameterToString(uuid)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupByUuid";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Group>("/v1/groups/uuid/{uuid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupByUuid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of games of a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GroupGame&gt;</returns>
        public List<GroupGame> GetGroupGames(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GroupGame>> localVarResponse = GetGroupGamesWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of games of a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GroupGame&gt;</returns>
        public Tribufu.Client.ApiResponse<List<GroupGame>> GetGroupGamesWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGroupGames");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupGames";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GroupGame>>("/v1/groups/{id}/games", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupGames", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of games of a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GroupGame&gt;</returns>
        public async System.Threading.Tasks.Task<List<GroupGame>> GetGroupGamesAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GroupGame>> localVarResponse = await GetGroupGamesWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of games of a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;GroupGame&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GroupGame>>> GetGroupGamesWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGroupGames");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupGames";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GroupGame>>("/v1/groups/{id}/games", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupGames", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of members in a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.member.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GroupMember&gt;</returns>
        public List<GroupMember> GetGroupMembers(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GroupMember>> localVarResponse = GetGroupMembersWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of members in a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.member.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GroupMember&gt;</returns>
        public Tribufu.Client.ApiResponse<List<GroupMember>> GetGroupMembersWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGroupMembers");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "text/plain",
                "application/json",
                "text/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupMembers";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GroupMember>>("/v1/groups/{id}/members", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupMembers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of members in a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.member.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GroupMember&gt;</returns>
        public async System.Threading.Tasks.Task<List<GroupMember>> GetGroupMembersAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GroupMember>> localVarResponse = await GetGroupMembersWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of members in a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.member.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;GroupMember&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GroupMember>>> GetGroupMembersWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetGroupMembers");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "text/plain",
                "application/json",
                "text/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroupMembers";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GroupMember>>("/v1/groups/{id}/members", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroupMembers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of groups. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Group&gt;</returns>
        public List<Group> GetGroups(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Group>> localVarResponse = GetGroupsWithHttpInfo(page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of groups. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Group&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Group>> GetGroupsWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroups";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Group>>("/v1/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of groups. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Group&gt;</returns>
        public async System.Threading.Tasks.Task<List<Group>> GetGroupsAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Group>> localVarResponse = await GetGroupsWithHttpInfoAsync(page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of groups. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Group&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Group>>> GetGroupsWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetGroups";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Group>>("/v1/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a ip address location. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>IpAddress</returns>
        public IpAddress GetIpAddress(string address, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<IpAddress> localVarResponse = GetIpAddressWithHttpInfo(address);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a ip address location. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of IpAddress</returns>
        public Tribufu.Client.ApiResponse<IpAddress> GetIpAddressWithHttpInfo(string address, int operationIndex = 0)
        {
            // verify the required parameter 'address' is set
            if (address == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'address' when calling TribufuGeneratedApi->GetIpAddress");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("address", Tribufu.Client.ClientUtils.ParameterToString(address)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetIpAddress";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<IpAddress>("/v1/geoip/addresses/{address}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetIpAddress", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a ip address location. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of IpAddress</returns>
        public async System.Threading.Tasks.Task<IpAddress> GetIpAddressAsync(string address, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<IpAddress> localVarResponse = await GetIpAddressWithHttpInfoAsync(address, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a ip address location. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="address"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (IpAddress)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<IpAddress>> GetIpAddressWithHttpInfoAsync(string address, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'address' is set
            if (address == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'address' when calling TribufuGeneratedApi->GetIpAddress");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("address", Tribufu.Client.ClientUtils.ParameterToString(address)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetIpAddress";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<IpAddress>("/v1/geoip/addresses/{address}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetIpAddress", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of ip addresses. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.geoip.address.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;IpAddress&gt;</returns>
        public List<IpAddress> GetIpAddresses(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<IpAddress>> localVarResponse = GetIpAddressesWithHttpInfo(organizationId, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of ip addresses. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.geoip.address.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;IpAddress&gt;</returns>
        public Tribufu.Client.ApiResponse<List<IpAddress>> GetIpAddressesWithHttpInfo(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (organizationId != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "organization_id", organizationId));
            }
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetIpAddresses";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<IpAddress>>("/v1/geoip/addresses", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetIpAddresses", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of ip addresses. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.geoip.address.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;IpAddress&gt;</returns>
        public async System.Threading.Tasks.Task<List<IpAddress>> GetIpAddressesAsync(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<IpAddress>> localVarResponse = await GetIpAddressesWithHttpInfoAsync(organizationId, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of ip addresses. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.geoip.address.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="organizationId">Filters results by organization, defaults to all organizations the user belongs to. (optional)</param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;IpAddress&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<IpAddress>>> GetIpAddressesWithHttpInfoAsync(string? organizationId = default(string?), int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (organizationId != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "organization_id", organizationId));
            }
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetIpAddresses";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<IpAddress>>("/v1/geoip/addresses", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetIpAddresses", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get the top 20 leaderboard users. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.leaderboard.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="order"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;LeaderboardItem&gt;</returns>
        public List<LeaderboardItem> GetLeaderboard(LeaderboardOrder? order = default(LeaderboardOrder?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<LeaderboardItem>> localVarResponse = GetLeaderboardWithHttpInfo(order);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get the top 20 leaderboard users. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.leaderboard.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="order"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;LeaderboardItem&gt;</returns>
        public Tribufu.Client.ApiResponse<List<LeaderboardItem>> GetLeaderboardWithHttpInfo(LeaderboardOrder? order = default(LeaderboardOrder?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (order != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "Order", order));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetLeaderboard";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<LeaderboardItem>>("/v1/leaderboard", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetLeaderboard", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get the top 20 leaderboard users. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.leaderboard.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="order"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;LeaderboardItem&gt;</returns>
        public async System.Threading.Tasks.Task<List<LeaderboardItem>> GetLeaderboardAsync(LeaderboardOrder? order = default(LeaderboardOrder?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<LeaderboardItem>> localVarResponse = await GetLeaderboardWithHttpInfoAsync(order, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get the top 20 leaderboard users. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.leaderboard.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="order"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;LeaderboardItem&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<LeaderboardItem>>> GetLeaderboardWithHttpInfoAsync(LeaderboardOrder? order = default(LeaderboardOrder?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (order != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "Order", order));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetLeaderboard";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<LeaderboardItem>>("/v1/leaderboard", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetLeaderboard", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a package by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Package</returns>
        public Package GetPackageById(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Package> localVarResponse = GetPackageByIdWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a package by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Package</returns>
        public Tribufu.Client.ApiResponse<Package> GetPackageByIdWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetPackageById");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetPackageById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Package>("/v1/packages/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPackageById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a package by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Package</returns>
        public async System.Threading.Tasks.Task<Package> GetPackageByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Package> localVarResponse = await GetPackageByIdWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a package by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Package)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Package>> GetPackageByIdWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetPackageById");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetPackageById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Package>("/v1/packages/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPackageById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of packages. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Package&gt;</returns>
        public List<Package> GetPackages(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Package>> localVarResponse = GetPackagesWithHttpInfo(page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of packages. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Package&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Package>> GetPackagesWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetPackages";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Package>>("/v1/packages", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPackages", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of packages. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Package&gt;</returns>
        public async System.Threading.Tasks.Task<List<Package>> GetPackagesAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Package>> localVarResponse = await GetPackagesWithHttpInfoAsync(page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of packages. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Package&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Package>>> GetPackagesWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetPackages";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Package>>("/v1/packages", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPackages", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get the public keys for the client. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void GetPublicKeys(int operationIndex = 0)
        {
            GetPublicKeysWithHttpInfo();
        }

        /// <summary>
        /// Get the public keys for the client. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> GetPublicKeysWithHttpInfo(int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetPublicKeys";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Object>("/v1/oauth2/jwks", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPublicKeys", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get the public keys for the client. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task GetPublicKeysAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await GetPublicKeysWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Get the public keys for the client. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> GetPublicKeysWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetPublicKeys";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Object>("/v1/oauth2/jwks", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetPublicKeys", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a subscription by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Subscription</returns>
        public Subscription GetSubscriptionById(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Subscription> localVarResponse = GetSubscriptionByIdWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a subscription by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Subscription</returns>
        public Tribufu.Client.ApiResponse<Subscription> GetSubscriptionByIdWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetSubscriptionById");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetSubscriptionById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Subscription>("/v1/subscriptions/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetSubscriptionById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a subscription by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Subscription</returns>
        public async System.Threading.Tasks.Task<Subscription> GetSubscriptionByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Subscription> localVarResponse = await GetSubscriptionByIdWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a subscription by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Subscription)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Subscription>> GetSubscriptionByIdWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetSubscriptionById");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetSubscriptionById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Subscription>("/v1/subscriptions/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetSubscriptionById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of subscriptions. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Subscription&gt;</returns>
        public List<Subscription> GetSubscriptions(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Subscription>> localVarResponse = GetSubscriptionsWithHttpInfo(page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of subscriptions. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Subscription&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Subscription>> GetSubscriptionsWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetSubscriptions";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Subscription>>("/v1/subscriptions", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetSubscriptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of subscriptions. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Subscription&gt;</returns>
        public async System.Threading.Tasks.Task<List<Subscription>> GetSubscriptionsAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Subscription>> localVarResponse = await GetSubscriptionsWithHttpInfoAsync(page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of subscriptions. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.store.subscription.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Subscription&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Subscription>>> GetSubscriptionsWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetSubscriptions";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Subscription>>("/v1/subscriptions", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetSubscriptions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of connected accounts of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.account.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Account&gt;</returns>
        public List<Account> GetUserAccounts(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Account>> localVarResponse = GetUserAccountsWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of connected accounts of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.account.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Account&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Account>> GetUserAccountsWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserAccounts");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserAccounts";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Account>>("/v1/users/{id}/accounts", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserAccounts", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of connected accounts of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.account.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Account&gt;</returns>
        public async System.Threading.Tasks.Task<List<Account>> GetUserAccountsAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Account>> localVarResponse = await GetUserAccountsWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of connected accounts of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.user.account.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Account&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Account>>> GetUserAccountsWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserAccounts");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserAccounts";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Account>>("/v1/users/{id}/accounts", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserAccounts", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of friends of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        public List<Object> GetUserFriends(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = GetUserFriendsWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of friends of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Object>> GetUserFriendsWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserFriends");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserFriends";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Object>>("/v1/profiles/{id}/friends", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserFriends", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of friends of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        public async System.Threading.Tasks.Task<List<Object>> GetUserFriendsAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = await GetUserFriendsWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of friends of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Object&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Object>>> GetUserFriendsWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserFriends");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserFriends";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Object>>("/v1/profiles/{id}/friends", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserFriends", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of friends of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        [Obsolete]
        public List<Object> GetUserFriendsV1(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = GetUserFriendsV1WithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of friends of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<Object>> GetUserFriendsV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserFriendsV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserFriendsV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Object>>("/v1/users/{id}/friends", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserFriendsV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of friends of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<Object>> GetUserFriendsV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = await GetUserFriendsV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of friends of the user. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.friend.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Object&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Object>>> GetUserFriendsV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserFriendsV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserFriendsV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Object>>("/v1/users/{id}/friends", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserFriendsV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of games the user has played. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ProfileGame&gt;</returns>
        public List<ProfileGame> GetUserGames(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<ProfileGame>> localVarResponse = GetUserGamesWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of games the user has played. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ProfileGame&gt;</returns>
        public Tribufu.Client.ApiResponse<List<ProfileGame>> GetUserGamesWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserGames");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserGames";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<ProfileGame>>("/v1/profiles/{id}/games", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserGames", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of games the user has played. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ProfileGame&gt;</returns>
        public async System.Threading.Tasks.Task<List<ProfileGame>> GetUserGamesAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<ProfileGame>> localVarResponse = await GetUserGamesWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of games the user has played. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;ProfileGame&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<ProfileGame>>> GetUserGamesWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserGames");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserGames";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<ProfileGame>>("/v1/profiles/{id}/games", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserGames", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of games the user has played. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ProfileGame&gt;</returns>
        [Obsolete]
        public List<ProfileGame> GetUserGamesV1(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<ProfileGame>> localVarResponse = GetUserGamesV1WithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of games the user has played. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ProfileGame&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<ProfileGame>> GetUserGamesV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserGamesV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserGamesV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<ProfileGame>>("/v1/users/{id}/games", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserGamesV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of games the user has played. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ProfileGame&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<ProfileGame>> GetUserGamesV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<ProfileGame>> localVarResponse = await GetUserGamesV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of games the user has played. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;ProfileGame&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<ProfileGame>>> GetUserGamesV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserGamesV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserGamesV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<ProfileGame>>("/v1/users/{id}/games", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserGamesV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of groups the user is a member of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ProfileGroup&gt;</returns>
        public List<ProfileGroup> GetUserGroups(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<ProfileGroup>> localVarResponse = GetUserGroupsWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of groups the user is a member of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ProfileGroup&gt;</returns>
        public Tribufu.Client.ApiResponse<List<ProfileGroup>> GetUserGroupsWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserGroups");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserGroups";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<ProfileGroup>>("/v1/profiles/{id}/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of groups the user is a member of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ProfileGroup&gt;</returns>
        public async System.Threading.Tasks.Task<List<ProfileGroup>> GetUserGroupsAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<ProfileGroup>> localVarResponse = await GetUserGroupsWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of groups the user is a member of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;ProfileGroup&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<ProfileGroup>>> GetUserGroupsWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserGroups");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserGroups";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<ProfileGroup>>("/v1/profiles/{id}/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserGroups", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of groups the user is a member of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;ProfileGroup&gt;</returns>
        [Obsolete]
        public List<ProfileGroup> GetUserGroupsV1(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<ProfileGroup>> localVarResponse = GetUserGroupsV1WithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of groups the user is a member of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;ProfileGroup&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<ProfileGroup>> GetUserGroupsV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserGroupsV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserGroupsV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<ProfileGroup>>("/v1/users/{id}/groups", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserGroupsV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of groups the user is a member of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;ProfileGroup&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<ProfileGroup>> GetUserGroupsV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<ProfileGroup>> localVarResponse = await GetUserGroupsV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of groups the user is a member of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.group.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;ProfileGroup&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<ProfileGroup>>> GetUserGroupsV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserGroupsV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserGroupsV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<ProfileGroup>>("/v1/users/{id}/groups", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserGroupsV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get current user information. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.user.info&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>UserInfo</returns>
        public UserInfo GetUserInfo(int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<UserInfo> localVarResponse = GetUserInfoWithHttpInfo();
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get current user information. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.user.info&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of UserInfo</returns>
        public Tribufu.Client.ApiResponse<UserInfo> GetUserInfoWithHttpInfo(int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserInfo";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<UserInfo>("/v1/oauth2/userinfo", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserInfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get current user information. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.user.info&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of UserInfo</returns>
        public async System.Threading.Tasks.Task<UserInfo> GetUserInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<UserInfo> localVarResponse = await GetUserInfoWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get current user information. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.user.info&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API 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 (UserInfo)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<UserInfo>> GetUserInfoWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }


            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserInfo";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<UserInfo>("/v1/oauth2/userinfo", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserInfo", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        public Profile GetUserProfileById(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = GetUserProfileByIdWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        public Tribufu.Client.ApiResponse<Profile> GetUserProfileByIdWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserProfileById");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Profile>("/v1/profiles/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        public async System.Threading.Tasks.Task<Profile> GetUserProfileByIdAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = await GetUserProfileByIdWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Profile)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Profile>> GetUserProfileByIdWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserProfileById");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileById";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Profile>("/v1/profiles/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileById", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        [Obsolete]
        public Profile GetUserProfileByIdV1(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = GetUserProfileByIdV1WithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Profile> GetUserProfileByIdV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserProfileByIdV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByIdV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Profile>("/v1/users/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByIdV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Profile> GetUserProfileByIdV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = await GetUserProfileByIdV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by id. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (Profile)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Profile>> GetUserProfileByIdV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserProfileByIdV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByIdV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Profile>("/v1/users/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByIdV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by name. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        public Profile GetUserProfileByName(string name, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = GetUserProfileByNameWithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by name. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        public Tribufu.Client.ApiResponse<Profile> GetUserProfileByNameWithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'name' when calling TribufuGeneratedApi->GetUserProfileByName");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", Tribufu.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByName";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Profile>("/v1/profiles/name/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByName", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by name. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param 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 Profile</returns>
        public async System.Threading.Tasks.Task<Profile> GetUserProfileByNameAsync(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = await GetUserProfileByNameWithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by name. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param 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 (Profile)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Profile>> GetUserProfileByNameWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'name' when calling TribufuGeneratedApi->GetUserProfileByName");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", Tribufu.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByName";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Profile>("/v1/profiles/name/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByName", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by name. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        [Obsolete]
        public Profile GetUserProfileByNameV1(string name, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = GetUserProfileByNameV1WithHttpInfo(name);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by name. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="name"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Profile> GetUserProfileByNameV1WithHttpInfo(string name, int operationIndex = 0)
        {
            // verify the required parameter 'name' is set
            if (name == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'name' when calling TribufuGeneratedApi->GetUserProfileByNameV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", Tribufu.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByNameV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Profile>("/v1/users/name/{name}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByNameV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by name. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param 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 Profile</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Profile> GetUserProfileByNameV1Async(string name, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = await GetUserProfileByNameV1WithHttpInfoAsync(name, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by name. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.name&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param 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 (Profile)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Profile>> GetUserProfileByNameV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'name' when calling TribufuGeneratedApi->GetUserProfileByNameV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("name", Tribufu.Client.ClientUtils.ParameterToString(name)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByNameV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Profile>("/v1/users/name/{name}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByNameV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        public Profile GetUserProfileByUuid(Guid uuid, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = GetUserProfileByUuidWithHttpInfo(uuid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        public Tribufu.Client.ApiResponse<Profile> GetUserProfileByUuidWithHttpInfo(Guid uuid, int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("uuid", Tribufu.Client.ClientUtils.ParameterToString(uuid)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByUuid";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Profile>("/v1/profiles/uuid/{uuid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByUuid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        public async System.Threading.Tasks.Task<Profile> GetUserProfileByUuidAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = await GetUserProfileByUuidWithHttpInfoAsync(uuid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Profile)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Profile>> GetUserProfileByUuidWithHttpInfoAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("uuid", Tribufu.Client.ClientUtils.ParameterToString(uuid)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByUuid";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Profile>("/v1/profiles/uuid/{uuid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByUuid", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        [Obsolete]
        public Profile GetUserProfileByUuidV1(Guid uuid, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = GetUserProfileByUuidV1WithHttpInfo(uuid);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Profile> GetUserProfileByUuidV1WithHttpInfo(Guid uuid, int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("uuid", Tribufu.Client.ClientUtils.ParameterToString(uuid)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByUuidV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<Profile>("/v1/users/uuid/{uuid}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByUuidV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a user profile by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Profile> GetUserProfileByUuidV1Async(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = await GetUserProfileByUuidV1WithHttpInfoAsync(uuid, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a user profile by uuid. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.get.uuid&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="uuid"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Profile)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Profile>> GetUserProfileByUuidV1WithHttpInfoAsync(Guid uuid, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("uuid", Tribufu.Client.ClientUtils.ParameterToString(uuid)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfileByUuidV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<Profile>("/v1/users/uuid/{uuid}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfileByUuidV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of user profiles. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Profile&gt;</returns>
        public List<Profile> GetUserProfiles(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Profile>> localVarResponse = GetUserProfilesWithHttpInfo(page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of user profiles. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Profile&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Profile>> GetUserProfilesWithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfiles";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Profile>>("/v1/profiles", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfiles", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of user profiles. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Profile&gt;</returns>
        public async System.Threading.Tasks.Task<List<Profile>> GetUserProfilesAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Profile>> localVarResponse = await GetUserProfilesWithHttpInfoAsync(page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of user profiles. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Profile&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Profile>>> GetUserProfilesWithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfiles";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Profile>>("/v1/profiles", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfiles", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of user profiles. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Profile&gt;</returns>
        [Obsolete]
        public List<Profile> GetUserProfilesV1(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Profile>> localVarResponse = GetUserProfilesV1WithHttpInfo(page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of user profiles. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Profile&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<Profile>> GetUserProfilesV1WithHttpInfo(int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfilesV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Profile>>("/v1/users", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfilesV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of user profiles. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Profile&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<Profile>> GetUserProfilesV1Async(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Profile>> localVarResponse = await GetUserProfilesV1WithHttpInfoAsync(page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of user profiles. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Profile&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Profile>>> GetUserProfilesV1WithHttpInfoAsync(int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserProfilesV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Profile>>("/v1/users", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserProfilesV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of sanctions the user has received. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        public List<Object> GetUserSanctions(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = GetUserSanctionsWithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of sanctions the user has received. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Object>> GetUserSanctionsWithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserSanctions");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserSanctions";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Object>>("/v1/profiles/{id}/sanctions", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserSanctions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of sanctions the user has received. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        public async System.Threading.Tasks.Task<List<Object>> GetUserSanctionsAsync(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = await GetUserSanctionsWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of sanctions the user has received. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Object&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Object>>> GetUserSanctionsWithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserSanctions");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserSanctions";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Object>>("/v1/profiles/{id}/sanctions", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserSanctions", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of sanctions the user has received. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        [Obsolete]
        public List<Object> GetUserSanctionsV1(string id, int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = GetUserSanctionsV1WithHttpInfo(id);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of sanctions the user has received. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<Object>> GetUserSanctionsV1WithHttpInfo(string id, int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserSanctionsV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserSanctionsV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<Object>>("/v1/users/{id}/sanctions", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserSanctionsV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of sanctions the user has received. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<Object>> GetUserSanctionsV1Async(string id, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = await GetUserSanctionsV1WithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of sanctions the user has received. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.sanction.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="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 (List&lt;Object&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Object>>> GetUserSanctionsV1WithHttpInfoAsync(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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserSanctionsV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserSanctionsV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<Object>>("/v1/users/{id}/sanctions", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserSanctionsV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of servers the user is owner of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        public List<GameServer> GetUserServers(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = GetUserServersWithHttpInfo(id, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of servers the user is owner of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        public Tribufu.Client.ApiResponse<List<GameServer>> GetUserServersWithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserServers");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserServers";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServer>>("/v1/profiles/{id}/servers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserServers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of servers the user is owner of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        public async System.Threading.Tasks.Task<List<GameServer>> GetUserServersAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = await GetUserServersWithHttpInfoAsync(id, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of servers the user is owner of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServer>>> GetUserServersWithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserServers");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserServers";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServer>>("/v1/profiles/{id}/servers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserServers", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of servers the user is owner of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;GameServer&gt;</returns>
        [Obsolete]
        public List<GameServer> GetUserServersV1(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = GetUserServersV1WithHttpInfo(id, page, limit);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of servers the user is owner of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;GameServer&gt;</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<List<GameServer>> GetUserServersV1WithHttpInfo(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserServersV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserServersV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Get<List<GameServer>>("/v1/users/{id}/servers", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserServersV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Get a list of servers the user is owner of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;GameServer&gt;</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<List<GameServer>> GetUserServersV1Async(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<GameServer>> localVarResponse = await GetUserServersV1WithHttpInfoAsync(id, page, limit, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Get a list of servers the user is owner of. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.game.server.list&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="page">The page number of the results to retrieve. Defaults to 1. (optional)</param>
        /// <param name="limit">The maximum number of items to return per page. Defaults to the defined pagination limit. (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;GameServer&gt;)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<GameServer>>> GetUserServersV1WithHttpInfoAsync(string id, int? page = default(int?), int? limit = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->GetUserServersV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            if (page != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "page", page));
            }
            if (limit != null)
            {
                localVarRequestOptions.QueryParameters.Add(Tribufu.Client.ClientUtils.ParameterToMultiMap("", "limit", limit));
            }

            localVarRequestOptions.Operation = "TribufuGeneratedApi.GetUserServersV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.GetAsync<List<GameServer>>("/v1/users/{id}/servers", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("GetUserServersV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Hash a string using argon2. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.argon2&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        public HashViewModel HashArgon2(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = HashArgon2WithHttpInfo(hashViewModel);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Hash a string using argon2. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.argon2&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        public Tribufu.Client.ApiResponse<HashViewModel> HashArgon2WithHttpInfo(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = hashViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.HashArgon2";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<HashViewModel>("/v1/utils/argon2", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("HashArgon2", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Hash a string using argon2. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.argon2&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        public async System.Threading.Tasks.Task<HashViewModel> HashArgon2Async(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = await HashArgon2WithHttpInfoAsync(hashViewModel, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Hash a string using argon2. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.argon2&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<HashViewModel>> HashArgon2WithHttpInfoAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = hashViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.HashArgon2";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<HashViewModel>("/v1/utils/argon2", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("HashArgon2", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Hash a string using bcrypt. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.bcrypt&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        public HashViewModel HashBcrypt(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = HashBcryptWithHttpInfo(hashViewModel);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Hash a string using bcrypt. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.bcrypt&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        public Tribufu.Client.ApiResponse<HashViewModel> HashBcryptWithHttpInfo(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = hashViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.HashBcrypt";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<HashViewModel>("/v1/utils/bcrypt", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("HashBcrypt", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Hash a string using bcrypt. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.bcrypt&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        public async System.Threading.Tasks.Task<HashViewModel> HashBcryptAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = await HashBcryptWithHttpInfoAsync(hashViewModel, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Hash a string using bcrypt. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.bcrypt&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<HashViewModel>> HashBcryptWithHttpInfoAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = hashViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.HashBcrypt";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<HashViewModel>("/v1/utils/bcrypt", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("HashBcrypt", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Hash a string using md5. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.md5&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        public HashViewModel HashMd5(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = HashMd5WithHttpInfo(hashViewModel);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Hash a string using md5. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.md5&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        public Tribufu.Client.ApiResponse<HashViewModel> HashMd5WithHttpInfo(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = hashViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.HashMd5";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<HashViewModel>("/v1/utils/md5", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("HashMd5", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Hash a string using md5. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.md5&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        public async System.Threading.Tasks.Task<HashViewModel> HashMd5Async(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = await HashMd5WithHttpInfoAsync(hashViewModel, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Hash a string using md5. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.md5&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<HashViewModel>> HashMd5WithHttpInfoAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = hashViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.HashMd5";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<HashViewModel>("/v1/utils/md5", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("HashMd5", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Hash a string using sha256. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.sha256&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>HashViewModel</returns>
        public HashViewModel HashSha256(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = HashSha256WithHttpInfo(hashViewModel);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Hash a string using sha256. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.sha256&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of HashViewModel</returns>
        public Tribufu.Client.ApiResponse<HashViewModel> HashSha256WithHttpInfo(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = hashViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.HashSha256";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<HashViewModel>("/v1/utils/sha256", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("HashSha256", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Hash a string using sha256. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.sha256&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of HashViewModel</returns>
        public async System.Threading.Tasks.Task<HashViewModel> HashSha256Async(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<HashViewModel> localVarResponse = await HashSha256WithHttpInfoAsync(hashViewModel, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Hash a string using sha256. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.utils.hash.sha256&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="hashViewModel"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (HashViewModel)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<HashViewModel>> HashSha256WithHttpInfoAsync(HashViewModel? hashViewModel = default(HashViewModel?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = hashViewModel;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.HashSha256";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<HashViewModel>("/v1/utils/sha256", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("HashSha256", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Introspect a token. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="introspectRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>IntrospectResponse</returns>
        public IntrospectResponse IntrospectToken(IntrospectRequest? introspectRequest = default(IntrospectRequest?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<IntrospectResponse> localVarResponse = IntrospectTokenWithHttpInfo(introspectRequest);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Introspect a token. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="introspectRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of IntrospectResponse</returns>
        public Tribufu.Client.ApiResponse<IntrospectResponse> IntrospectTokenWithHttpInfo(IntrospectRequest? introspectRequest = default(IntrospectRequest?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json",
                "application/x-www-form-urlencoded"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = introspectRequest;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.IntrospectToken";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<IntrospectResponse>("/v1/oauth2/introspect", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("IntrospectToken", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Introspect a token. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="introspectRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of IntrospectResponse</returns>
        public async System.Threading.Tasks.Task<IntrospectResponse> IntrospectTokenAsync(IntrospectRequest? introspectRequest = default(IntrospectRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<IntrospectResponse> localVarResponse = await IntrospectTokenWithHttpInfoAsync(introspectRequest, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Introspect a token. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="introspectRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (IntrospectResponse)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<IntrospectResponse>> IntrospectTokenWithHttpInfoAsync(IntrospectRequest? introspectRequest = default(IntrospectRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json", 
                "application/x-www-form-urlencoded"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = introspectRequest;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.IntrospectToken";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<IntrospectResponse>("/v1/oauth2/introspect", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("IntrospectToken", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Revoke a token. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="revokeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void RevokeToken(RevokeRequest? revokeRequest = default(RevokeRequest?), int operationIndex = 0)
        {
            RevokeTokenWithHttpInfo(revokeRequest);
        }

        /// <summary>
        /// Revoke a token. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="revokeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> RevokeTokenWithHttpInfo(RevokeRequest? revokeRequest = default(RevokeRequest?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json",
                "application/x-www-form-urlencoded"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = revokeRequest;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.RevokeToken";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<Object>("/v1/oauth2/revoke", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RevokeToken", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Revoke a token. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="revokeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task RevokeTokenAsync(RevokeRequest? revokeRequest = default(RevokeRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await RevokeTokenWithHttpInfoAsync(revokeRequest, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Revoke a token. 
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="revokeRequest"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> RevokeTokenWithHttpInfoAsync(RevokeRequest? revokeRequest = default(RevokeRequest?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json", 
                "application/x-www-form-urlencoded"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = revokeRequest;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.RevokeToken";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<Object>("/v1/oauth2/revoke", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("RevokeToken", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Advanced search. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.search&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="search"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>List&lt;Object&gt;</returns>
        public List<Object> Search(Search? search = default(Search?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = SearchWithHttpInfo(search);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Advanced search. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.search&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="search"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of List&lt;Object&gt;</returns>
        public Tribufu.Client.ApiResponse<List<Object>> SearchWithHttpInfo(Search? search = default(Search?), int operationIndex = 0)
        {
            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = search;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.Search";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post<List<Object>>("/v1/search", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("Search", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Advanced search. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.search&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="search"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of List&lt;Object&gt;</returns>
        public async System.Threading.Tasks.Task<List<Object>> SearchAsync(Search? search = default(Search?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<List<Object>> localVarResponse = await SearchWithHttpInfoAsync(search, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Advanced search. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.search&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="search"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (List&lt;Object&gt;)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<List<Object>>> SearchWithHttpInfoAsync(Search? search = default(Search?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = search;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.Search";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PostAsync<List<Object>>("/v1/search", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("Search", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void UpdateClient(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            UpdateClientWithHttpInfo(id, body);
        }

        /// <summary>
        /// Update an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> UpdateClientWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateClient");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateClient";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/oauth2/clients/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClient", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        public async System.Threading.Tasks.Task UpdateClientAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await UpdateClientWithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Update an oauth2 client. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.identity.oauth2.client.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> UpdateClientWithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateClient");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateClient";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/oauth2/clients/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateClient", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void UpdateGameServer(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            UpdateGameServerWithHttpInfo(id, body);
        }

        /// <summary>
        /// Update a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> UpdateGameServerWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGameServer");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGameServer";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/games/servers/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGameServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        public async System.Threading.Tasks.Task UpdateGameServerAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await UpdateGameServerWithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Update a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> UpdateGameServerWithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGameServer");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGameServer";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/games/servers/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGameServer", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void UpdateGameServerCluster(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            UpdateGameServerClusterWithHttpInfo(id, body);
        }

        /// <summary>
        /// Update a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> UpdateGameServerClusterWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGameServerCluster");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGameServerCluster";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/games/servers/clusters/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGameServerCluster", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        public async System.Threading.Tasks.Task UpdateGameServerClusterAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await UpdateGameServerClusterWithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Update a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> UpdateGameServerClusterWithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGameServerCluster");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGameServerCluster";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/games/servers/clusters/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGameServerCluster", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        public void UpdateGameServerClusterV1(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            UpdateGameServerClusterV1WithHttpInfo(id, body);
        }

        /// <summary>
        /// Update a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Object> UpdateGameServerClusterV1WithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGameServerClusterV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGameServerClusterV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/clusters/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGameServerClusterV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task UpdateGameServerClusterV1Async(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await UpdateGameServerClusterV1WithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Update a game server cluster. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.cluster.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> UpdateGameServerClusterV1WithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGameServerClusterV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGameServerClusterV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/clusters/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGameServerClusterV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        [Obsolete]
        public void UpdateGameServerV1(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            UpdateGameServerV1WithHttpInfo(id, body);
        }

        /// <summary>
        /// Update a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Object> UpdateGameServerV1WithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGameServerV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGameServerV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/servers/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGameServerV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task UpdateGameServerV1Async(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await UpdateGameServerV1WithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Update a game server. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.game.server.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> UpdateGameServerV1WithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGameServerV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGameServerV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/servers/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGameServerV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void UpdateGroup(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            UpdateGroupWithHttpInfo(id, body);
        }

        /// <summary>
        /// Update a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="body"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> UpdateGroupWithHttpInfo(string id, Object? body = default(Object?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGroup");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGroup";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/groups/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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 void</returns>
        public async System.Threading.Tasks.Task UpdateGroupAsync(string id, Object? body = default(Object?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await UpdateGroupWithHttpInfoAsync(id, body, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Update a group. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.group.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></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</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> UpdateGroupWithHttpInfoAsync(string id, 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 Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateGroup");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = body;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateGroup";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/groups/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateGroup", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update an package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="package"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns></returns>
        public void UpdatePackage(string id, Package? package = default(Package?), int operationIndex = 0)
        {
            UpdatePackageWithHttpInfo(id, package);
        }

        /// <summary>
        /// Update an package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="package"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Tribufu.Client.ApiResponse<Object> UpdatePackageWithHttpInfo(string id, Package? package = default(Package?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdatePackage");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = package;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdatePackage";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Object>("/v1/packages/{id}", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdatePackage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update an package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="package"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of void</returns>
        public async System.Threading.Tasks.Task UpdatePackageAsync(string id, Package? package = default(Package?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            await UpdatePackageWithHttpInfoAsync(id, package, operationIndex, cancellationToken).ConfigureAwait(false);
        }

        /// <summary>
        /// Update an package. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.package.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="package"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Object>> UpdatePackageWithHttpInfoAsync(string id, Package? package = default(Package?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdatePackage");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = package;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdatePackage";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Object>("/v1/packages/{id}", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdatePackage", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a user profile. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        public Profile UpdateUserProfile(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = UpdateUserProfileWithHttpInfo(id, updateProfile);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Update a user profile. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        public Tribufu.Client.ApiResponse<Profile> UpdateUserProfileWithHttpInfo(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateUserProfile");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateProfile;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateUserProfile";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Profile>("/v1/profiles/{id}/profile", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateUserProfile", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a user profile. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        public async System.Threading.Tasks.Task<Profile> UpdateUserProfileAsync(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = await UpdateUserProfileWithHttpInfoAsync(id, updateProfile, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Update a user profile. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Profile)</returns>
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Profile>> UpdateUserProfileWithHttpInfoAsync(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateUserProfile");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateProfile;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateUserProfile";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Profile>("/v1/profiles/{id}/profile", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateUserProfile", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a user profile. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>Profile</returns>
        [Obsolete]
        public Profile UpdateUserProfileV1(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0)
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = UpdateUserProfileV1WithHttpInfo(id, updateProfile);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Update a user profile. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <returns>ApiResponse of Profile</returns>
        [Obsolete]
        public Tribufu.Client.ApiResponse<Profile> UpdateUserProfileV1WithHttpInfo(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateUserProfileV1");
            }

            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            var localVarMultipartFormData = localVarContentType == "multipart/form-data";
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateProfile;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateUserProfileV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Put<Profile>("/v1/users/{id}/profile", localVarRequestOptions, this.Configuration);
            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateUserProfileV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

        /// <summary>
        /// Update a user profile. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of Profile</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Profile> UpdateUserProfileV1Async(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            Tribufu.Client.ApiResponse<Profile> localVarResponse = await UpdateUserProfileV1WithHttpInfoAsync(id, updateProfile, operationIndex, cancellationToken).ConfigureAwait(false);
            return localVarResponse.Data;
        }

        /// <summary>
        /// Update a user profile. &lt;b&gt;🔒 Required permissions:&lt;/b&gt; &lt;code&gt;tribufu.community.profile.update&lt;/code&gt;
        /// </summary>
        /// <exception cref="Tribufu.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="id"></param>
        /// <param name="updateProfile"> (optional)</param>
        /// <param name="operationIndex">Index associated with the operation.</param>
        /// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
        /// <returns>Task of ApiResponse (Profile)</returns>
        [Obsolete]
        public async System.Threading.Tasks.Task<Tribufu.Client.ApiResponse<Profile>> UpdateUserProfileV1WithHttpInfoAsync(string id, UpdateProfile? updateProfile = default(UpdateProfile?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new Tribufu.Client.ApiException(400, "Missing required parameter 'id' when calling TribufuGeneratedApi->UpdateUserProfileV1");
            }


            Tribufu.Client.RequestOptions localVarRequestOptions = new Tribufu.Client.RequestOptions();

            string[] _contentTypes = new string[] {
                "application/json"
            };

            // to determine the Accept header
            string[] _accepts = new string[] {
                "application/json"
            };

            var localVarContentType = Tribufu.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Tribufu.Client.ClientUtils.SelectHeaderAccept(_accepts);
            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.PathParameters.Add("id", Tribufu.Client.ClientUtils.ParameterToString(id)); // path parameter
            localVarRequestOptions.Data = updateProfile;

            localVarRequestOptions.Operation = "TribufuGeneratedApi.UpdateUserProfileV1";
            localVarRequestOptions.OperationIndex = operationIndex;

            // authentication (ApiKey) required
            if (!string.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Authorization")))
            {
                localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization"));
            }

            // make the HTTP request
            var localVarResponse = await this.AsynchronousClient.PutAsync<Profile>("/v1/users/{id}/profile", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("UpdateUserProfileV1", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return localVarResponse;
        }

    }
}
