From 1e83fce38d3c3f40a42138e712de9ffa68a814f3 Mon Sep 17 00:00:00 2001
From: Matthias Hoste <42743095+matthias-hoste@users.noreply.github.com>
Date: Sat, 7 Feb 2026 23:44:42 +0100
Subject: [PATCH 1/2] feat: initial commit
---
.../.idea.Phoenix.ApiWrapper/.idea/.gitignore | 13 +
.../.idea/encodings.xml | 4 +
.../.idea/indexLayout.xml | 8 +
.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml | 6 +
.vscode/launch.json | 26 -
.vscode/tasks.json | 41 --
Phoenix.ApiWrapper.sln | 16 +
.../Alliances/AlliancesRequestBuilder.cs | 53 ++
.../Alliances/Get/GetRequestBuilder.cs | 99 ++++
.../Alliances/Search/SearchRequestBuilder.cs | 99 ++++
.../WarpointLb/WarpointLbRequestBuilder.cs | 84 +++
.../Generated/GalaxyLife/ApiClient.cs | 67 +++
.../BaseTemplateRequestBuilder.cs | 41 ++
.../BaseTemplate/Get/GetRequestBuilder.cs | 99 ++++
.../Leaderboard/LeaderboardRequestBuilder.cs | 59 ++
.../RivalsWon/RivalsWonRequestBuilder.cs | 84 +++
.../Warpoints/WarpointsRequestBuilder.cs | 84 +++
.../Leaderboard/Xp/XpRequestBuilder.cs | 84 +++
.../XpFromAttackRequestBuilder.cs | 84 +++
.../GetMaintenanceStatusRequestBuilder.cs | 84 +++
.../GetMaintenanceTimeRequestBuilder.cs | 84 +++
.../GalaxyLife/Status/StatusRequestBuilder.cs | 96 ++++
.../Users/Count/CountRequestBuilder.cs | 84 +++
.../GalaxyLife/Users/Get/GetRequestBuilder.cs | 99 ++++
.../Users/Name/NameRequestBuilder.cs | 99 ++++
.../PlatformIdRequestBuilder.cs | 99 ++++
.../Users/Search/SearchRequestBuilder.cs | 99 ++++
.../Users/Stats/StatsRequestBuilder.cs | 99 ++++
.../Users/Steam/SteamRequestBuilder.cs | 99 ++++
.../GalaxyLife/Users/UsersRequestBuilder.cs | 77 +++
.../Generated/GalaxyLife/kiota-lock.json | 34 ++
.../KiotaAccessTokenProvider.cs | 29 +
Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj | 38 ++
Phoenix.ApiWrapper/PhoenixApiClient.cs | 340 +++++++++++
dotnet-tools.json | 13 +
src/GL.NET.sln | 31 -
src/GL.NET/ApiClient.cs | 533 ------------------
src/GL.NET/AuthorizedGLClient.cs | 206 -------
src/GL.NET/BackendClient.cs | 250 --------
src/GL.NET/Entities/Alliance.cs | 34 --
src/GL.NET/Entities/AllianceUser.cs | 14 -
src/GL.NET/Entities/BattleLog.cs | 31 -
src/GL.NET/Entities/Emblem.cs | 73 ---
src/GL.NET/Entities/Enums/AllianceRole.cs | 8 -
src/GL.NET/Entities/Enums/PhoenixRole.cs | 11 -
src/GL.NET/Entities/Fingerprint.cs | 12 -
src/GL.NET/Entities/LeaderboardUser.cs | 83 ---
src/GL.NET/Entities/PhoenixUser.cs | 23 -
src/GL.NET/Entities/Planet.cs | 8 -
src/GL.NET/Entities/ServerStatus.cs | 17 -
src/GL.NET/Entities/TokenResponse.cs | 15 -
src/GL.NET/Entities/User.cs | 20 -
src/GL.NET/Entities/UserGifts.cs | 8 -
src/GL.NET/Entities/UserLogins.cs | 8 -
src/GL.NET/Entities/UserStats.cs | 49 --
src/GL.NET/Entities/WarSummary.cs | 48 --
src/GL.NET/Exceptions/GLException.cs | 7 -
src/GL.NET/Exceptions/NoAuthException.cs | 6 -
src/GL.NET/GL.NET.csproj | 32 --
src/GL.NET/GLClient.cs | 89 ---
src/TestConsoleApp/Program.cs | 55 --
src/TestConsoleApp/TestConsoleApp.csproj | 14 -
62 files changed, 2457 insertions(+), 1752 deletions(-)
create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore
create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/encodings.xml
create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/indexLayout.xml
create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml
delete mode 100644 .vscode/launch.json
delete mode 100644 .vscode/tasks.json
create mode 100644 Phoenix.ApiWrapper.sln
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/ApiClient.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Status/StatusRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/UsersRequestBuilder.cs
create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/kiota-lock.json
create mode 100644 Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs
create mode 100644 Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj
create mode 100644 Phoenix.ApiWrapper/PhoenixApiClient.cs
create mode 100644 dotnet-tools.json
delete mode 100644 src/GL.NET.sln
delete mode 100644 src/GL.NET/ApiClient.cs
delete mode 100644 src/GL.NET/AuthorizedGLClient.cs
delete mode 100644 src/GL.NET/BackendClient.cs
delete mode 100644 src/GL.NET/Entities/Alliance.cs
delete mode 100644 src/GL.NET/Entities/AllianceUser.cs
delete mode 100644 src/GL.NET/Entities/BattleLog.cs
delete mode 100644 src/GL.NET/Entities/Emblem.cs
delete mode 100644 src/GL.NET/Entities/Enums/AllianceRole.cs
delete mode 100644 src/GL.NET/Entities/Enums/PhoenixRole.cs
delete mode 100644 src/GL.NET/Entities/Fingerprint.cs
delete mode 100644 src/GL.NET/Entities/LeaderboardUser.cs
delete mode 100644 src/GL.NET/Entities/PhoenixUser.cs
delete mode 100644 src/GL.NET/Entities/Planet.cs
delete mode 100644 src/GL.NET/Entities/ServerStatus.cs
delete mode 100644 src/GL.NET/Entities/TokenResponse.cs
delete mode 100644 src/GL.NET/Entities/User.cs
delete mode 100644 src/GL.NET/Entities/UserGifts.cs
delete mode 100644 src/GL.NET/Entities/UserLogins.cs
delete mode 100644 src/GL.NET/Entities/UserStats.cs
delete mode 100644 src/GL.NET/Entities/WarSummary.cs
delete mode 100644 src/GL.NET/Exceptions/GLException.cs
delete mode 100644 src/GL.NET/Exceptions/NoAuthException.cs
delete mode 100644 src/GL.NET/GL.NET.csproj
delete mode 100644 src/GL.NET/GLClient.cs
delete mode 100644 src/TestConsoleApp/Program.cs
delete mode 100644 src/TestConsoleApp/TestConsoleApp.csproj
diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore b/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore
new file mode 100644
index 0000000..983d86b
--- /dev/null
+++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/projectSettingsUpdater.xml
+/.idea.Phoenix.ApiWrapper.iml
+/modules.xml
+/contentModel.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/encodings.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/indexLayout.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
deleted file mode 100644
index 6073f98..0000000
--- a/.vscode/launch.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "version": "0.2.0",
- "configurations": [
- {
- // Use IntelliSense to find out which attributes exist for C# debugging
- // Use hover for the description of the existing attributes
- // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
- "name": ".NET Core Launch (console)",
- "type": "coreclr",
- "request": "launch",
- "preLaunchTask": "build",
- // If you have changed target frameworks, make sure to update the program path.
- "program": "${workspaceFolder}/src/TestConsoleApp/bin/Debug/net7.0/TestConsoleApp.dll",
- "args": [],
- "cwd": "${workspaceFolder}/src/TestConsoleApp",
- // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
- "console": "internalConsole",
- "stopAtEntry": false
- },
- {
- "name": ".NET Core Attach",
- "type": "coreclr",
- "request": "attach"
- }
- ]
-}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
deleted file mode 100644
index f3128ed..0000000
--- a/.vscode/tasks.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "version": "2.0.0",
- "tasks": [
- {
- "label": "build",
- "command": "dotnet",
- "type": "process",
- "args": [
- "build",
- "${workspaceFolder}/src/TestConsoleApp/TestConsoleApp.csproj",
- "/property:GenerateFullPaths=true",
- "/consoleloggerparameters:NoSummary"
- ],
- "problemMatcher": "$msCompile"
- },
- {
- "label": "publish",
- "command": "dotnet",
- "type": "process",
- "args": [
- "publish",
- "${workspaceFolder}/src/TestConsoleApp/TestConsoleApp.csproj",
- "/property:GenerateFullPaths=true",
- "/consoleloggerparameters:NoSummary"
- ],
- "problemMatcher": "$msCompile"
- },
- {
- "label": "watch",
- "command": "dotnet",
- "type": "process",
- "args": [
- "watch",
- "run",
- "--project",
- "${workspaceFolder}/src/TestConsoleApp/TestConsoleApp.csproj"
- ],
- "problemMatcher": "$msCompile"
- }
- ]
-}
\ No newline at end of file
diff --git a/Phoenix.ApiWrapper.sln b/Phoenix.ApiWrapper.sln
new file mode 100644
index 0000000..5cf45dd
--- /dev/null
+++ b/Phoenix.ApiWrapper.sln
@@ -0,0 +1,16 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Phoenix.ApiWrapper", "Phoenix.ApiWrapper\Phoenix.ApiWrapper.csproj", "{3C9F0468-0B32-45A2-82E0-53D75B28D00C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs
new file mode 100644
index 0000000..80f8038
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs
@@ -0,0 +1,53 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions;
+using Phoenix.GalaxyLife.Api.Alliances.Get;
+using Phoenix.GalaxyLife.Api.Alliances.Search;
+using Phoenix.GalaxyLife.Api.Alliances.WarpointLb;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System;
+namespace Phoenix.GalaxyLife.Api.Alliances
+{
+ ///
+ /// Builds and executes requests for operations under \Alliances
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class AlliancesRequestBuilder : BaseRequestBuilder
+ {
+ /// The getPath property
+ public global::Phoenix.GalaxyLife.Api.Alliances.Get.GetRequestBuilder GetPath
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Alliances.Get.GetRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The search property
+ public global::Phoenix.GalaxyLife.Api.Alliances.Search.SearchRequestBuilder Search
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Alliances.Search.SearchRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The warpointLb property
+ public global::Phoenix.GalaxyLife.Api.Alliances.WarpointLb.WarpointLbRequestBuilder WarpointLb
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Alliances.WarpointLb.WarpointLbRequestBuilder(PathParameters, RequestAdapter);
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public AlliancesRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public AlliancesRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances", rawUrl)
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs
new file mode 100644
index 0000000..7022eb1
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Alliances.Get
+{
+ ///
+ /// Builds and executes requests for operations under \Alliances\get
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public GetRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/get{?name*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public GetRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/get{?name*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Alliances.Get.GetRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Alliances.Get.GetRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class GetRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("name")]
+ public string? Name { get; set; }
+#nullable restore
+#else
+ [QueryParameter("name")]
+ public string Name { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs
new file mode 100644
index 0000000..0d3e61e
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Alliances.Search
+{
+ ///
+ /// Builds and executes requests for operations under \Alliances\search
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class SearchRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public SearchRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/search{?name*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public SearchRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/search{?name*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Alliances.Search.SearchRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Alliances.Search.SearchRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class SearchRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("name")]
+ public string? Name { get; set; }
+#nullable restore
+#else
+ [QueryParameter("name")]
+ public string Name { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class SearchRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs
new file mode 100644
index 0000000..2f09b59
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs
@@ -0,0 +1,84 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Alliances.WarpointLb
+{
+ ///
+ /// Builds and executes requests for operations under \Alliances\warpointLb
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class WarpointLbRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public WarpointLbRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/warpointLb", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public WarpointLbRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/warpointLb", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Alliances.WarpointLb.WarpointLbRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Alliances.WarpointLb.WarpointLbRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class WarpointLbRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/ApiClient.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/ApiClient.cs
new file mode 100644
index 0000000..0f300d2
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/ApiClient.cs
@@ -0,0 +1,67 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions;
+using Microsoft.Kiota.Serialization.Form;
+using Microsoft.Kiota.Serialization.Json;
+using Microsoft.Kiota.Serialization.Multipart;
+using Microsoft.Kiota.Serialization.Text;
+using Phoenix.GalaxyLife.Api.Alliances;
+using Phoenix.GalaxyLife.Api.BaseTemplate;
+using Phoenix.GalaxyLife.Api.Leaderboard;
+using Phoenix.GalaxyLife.Api.Status;
+using Phoenix.GalaxyLife.Api.Users;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System;
+namespace Phoenix.GalaxyLife.Api
+{
+ ///
+ /// The main entry point of the SDK, exposes the configuration and the fluent API.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class ApiClient : BaseRequestBuilder
+ {
+ /// The Alliances property
+ public global::Phoenix.GalaxyLife.Api.Alliances.AlliancesRequestBuilder Alliances
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Alliances.AlliancesRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The BaseTemplate property
+ public global::Phoenix.GalaxyLife.Api.BaseTemplate.BaseTemplateRequestBuilder BaseTemplate
+ {
+ get => new global::Phoenix.GalaxyLife.Api.BaseTemplate.BaseTemplateRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The Leaderboard property
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.LeaderboardRequestBuilder Leaderboard
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Leaderboard.LeaderboardRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The status property
+ public global::Phoenix.GalaxyLife.Api.Status.StatusRequestBuilder Status
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Status.StatusRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The Users property
+ public global::Phoenix.GalaxyLife.Api.Users.UsersRequestBuilder Users
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Users.UsersRequestBuilder(PathParameters, RequestAdapter);
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The request adapter to use to execute the requests.
+ public ApiClient(IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}", new Dictionary())
+ {
+ ApiClientBuilder.RegisterDefaultSerializer();
+ ApiClientBuilder.RegisterDefaultSerializer();
+ ApiClientBuilder.RegisterDefaultSerializer();
+ ApiClientBuilder.RegisterDefaultSerializer();
+ ApiClientBuilder.RegisterDefaultDeserializer();
+ ApiClientBuilder.RegisterDefaultDeserializer();
+ ApiClientBuilder.RegisterDefaultDeserializer();
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs
new file mode 100644
index 0000000..90c7d6d
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs
@@ -0,0 +1,41 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions;
+using Phoenix.GalaxyLife.Api.BaseTemplate.Get;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System;
+namespace Phoenix.GalaxyLife.Api.BaseTemplate
+{
+ ///
+ /// Builds and executes requests for operations under \BaseTemplate
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class BaseTemplateRequestBuilder : BaseRequestBuilder
+ {
+ /// The getPath property
+ public global::Phoenix.GalaxyLife.Api.BaseTemplate.Get.GetRequestBuilder GetPath
+ {
+ get => new global::Phoenix.GalaxyLife.Api.BaseTemplate.Get.GetRequestBuilder(PathParameters, RequestAdapter);
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public BaseTemplateRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/BaseTemplate", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public BaseTemplateRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/BaseTemplate", rawUrl)
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs
new file mode 100644
index 0000000..db93577
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.BaseTemplate.Get
+{
+ ///
+ /// Builds and executes requests for operations under \BaseTemplate\get
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public GetRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/BaseTemplate/get{?id*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public GetRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/BaseTemplate/get{?id*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.BaseTemplate.Get.GetRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.BaseTemplate.Get.GetRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class GetRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("id")]
+ public string? Id { get; set; }
+#nullable restore
+#else
+ [QueryParameter("id")]
+ public string Id { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs
new file mode 100644
index 0000000..62e670a
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs
@@ -0,0 +1,59 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions;
+using Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon;
+using Phoenix.GalaxyLife.Api.Leaderboard.Warpoints;
+using Phoenix.GalaxyLife.Api.Leaderboard.Xp;
+using Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System;
+namespace Phoenix.GalaxyLife.Api.Leaderboard
+{
+ ///
+ /// Builds and executes requests for operations under \Leaderboard
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class LeaderboardRequestBuilder : BaseRequestBuilder
+ {
+ /// The rivalsWon property
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon.RivalsWonRequestBuilder RivalsWon
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon.RivalsWonRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The warpoints property
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.Warpoints.WarpointsRequestBuilder Warpoints
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Leaderboard.Warpoints.WarpointsRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The xp property
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.Xp.XpRequestBuilder Xp
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Leaderboard.Xp.XpRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The xpFromAttack property
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack.XpFromAttackRequestBuilder XpFromAttack
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack.XpFromAttackRequestBuilder(PathParameters, RequestAdapter);
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public LeaderboardRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public LeaderboardRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard", rawUrl)
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs
new file mode 100644
index 0000000..61bb964
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs
@@ -0,0 +1,84 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon
+{
+ ///
+ /// Builds and executes requests for operations under \Leaderboard\rivalsWon
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class RivalsWonRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public RivalsWonRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/rivalsWon", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public RivalsWonRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/rivalsWon", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon.RivalsWonRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon.RivalsWonRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class RivalsWonRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs
new file mode 100644
index 0000000..d3a03e8
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs
@@ -0,0 +1,84 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Leaderboard.Warpoints
+{
+ ///
+ /// Builds and executes requests for operations under \Leaderboard\warpoints
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class WarpointsRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public WarpointsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/warpoints", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public WarpointsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/warpoints", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.Warpoints.WarpointsRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Leaderboard.Warpoints.WarpointsRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class WarpointsRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs
new file mode 100644
index 0000000..7d678da
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs
@@ -0,0 +1,84 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Leaderboard.Xp
+{
+ ///
+ /// Builds and executes requests for operations under \Leaderboard\xp
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class XpRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public XpRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/xp", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public XpRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/xp", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.Xp.XpRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Leaderboard.Xp.XpRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class XpRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs
new file mode 100644
index 0000000..2d750ec
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs
@@ -0,0 +1,84 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack
+{
+ ///
+ /// Builds and executes requests for operations under \Leaderboard\xpFromAttack
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class XpFromAttackRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public XpFromAttackRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/xpFromAttack", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public XpFromAttackRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/xpFromAttack", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack.XpFromAttackRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack.XpFromAttackRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class XpFromAttackRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs
new file mode 100644
index 0000000..8f6a2cd
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs
@@ -0,0 +1,84 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus
+{
+ ///
+ /// Builds and executes requests for operations under \status\getMaintenanceStatus
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetMaintenanceStatusRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public GetMaintenanceStatusRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status/getMaintenanceStatus", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public GetMaintenanceStatusRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status/getMaintenanceStatus", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus.GetMaintenanceStatusRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus.GetMaintenanceStatusRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetMaintenanceStatusRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs
new file mode 100644
index 0000000..89b5488
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs
@@ -0,0 +1,84 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime
+{
+ ///
+ /// Builds and executes requests for operations under \status\getMaintenanceTime
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetMaintenanceTimeRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public GetMaintenanceTimeRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status/getMaintenanceTime", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public GetMaintenanceTimeRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status/getMaintenanceTime", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime.GetMaintenanceTimeRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime.GetMaintenanceTimeRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetMaintenanceTimeRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/StatusRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/StatusRequestBuilder.cs
new file mode 100644
index 0000000..13ce7aa
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/StatusRequestBuilder.cs
@@ -0,0 +1,96 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus;
+using Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Status
+{
+ ///
+ /// Builds and executes requests for operations under \status
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class StatusRequestBuilder : BaseRequestBuilder
+ {
+ /// The getMaintenanceStatus property
+ public global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus.GetMaintenanceStatusRequestBuilder GetMaintenanceStatus
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus.GetMaintenanceStatusRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The getMaintenanceTime property
+ public global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime.GetMaintenanceTimeRequestBuilder GetMaintenanceTime
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime.GetMaintenanceTimeRequestBuilder(PathParameters, RequestAdapter);
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public StatusRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public StatusRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Status.StatusRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Status.StatusRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class StatusRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs
new file mode 100644
index 0000000..a5245bc
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs
@@ -0,0 +1,84 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Users.Count
+{
+ ///
+ /// Builds and executes requests for operations under \Users\count
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class CountRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public CountRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/count", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public CountRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/count", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Users.Count.CountRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Users.Count.CountRequestBuilder(rawUrl, RequestAdapter);
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class CountRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs
new file mode 100644
index 0000000..7b5148d
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Users.Get
+{
+ ///
+ /// Builds and executes requests for operations under \Users\get
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public GetRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/get{?id*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public GetRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/get{?id*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Users.Get.GetRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Users.Get.GetRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class GetRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("id")]
+ public string? Id { get; set; }
+#nullable restore
+#else
+ [QueryParameter("id")]
+ public string Id { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class GetRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs
new file mode 100644
index 0000000..05e737d
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Users.Name
+{
+ ///
+ /// Builds and executes requests for operations under \Users\name
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class NameRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public NameRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/name{?name*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public NameRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/name{?name*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Users.Name.NameRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Users.Name.NameRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class NameRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("name")]
+ public string? Name { get; set; }
+#nullable restore
+#else
+ [QueryParameter("name")]
+ public string Name { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class NameRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs
new file mode 100644
index 0000000..8876811
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace
+{
+ ///
+ /// Builds and executes requests for operations under \Users\platformId
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class PlatformIdRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public PlatformIdRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/platformId{?userId*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public PlatformIdRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/platformId{?userId*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace.PlatformIdRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace.PlatformIdRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class PlatformIdRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("userId")]
+ public string? UserId { get; set; }
+#nullable restore
+#else
+ [QueryParameter("userId")]
+ public string UserId { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class PlatformIdRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs
new file mode 100644
index 0000000..f1dd2ee
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Users.Search
+{
+ ///
+ /// Builds and executes requests for operations under \Users\search
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class SearchRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public SearchRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/search{?name*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public SearchRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/search{?name*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Users.Search.SearchRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Users.Search.SearchRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class SearchRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("name")]
+ public string? Name { get; set; }
+#nullable restore
+#else
+ [QueryParameter("name")]
+ public string Name { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class SearchRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs
new file mode 100644
index 0000000..a120dd2
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Users.Stats
+{
+ ///
+ /// Builds and executes requests for operations under \Users\stats
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class StatsRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public StatsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/stats{?id*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public StatsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/stats{?id*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Users.Stats.StatsRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Users.Stats.StatsRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class StatsRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("id")]
+ public string? Id { get; set; }
+#nullable restore
+#else
+ [QueryParameter("id")]
+ public string Id { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class StatsRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs
new file mode 100644
index 0000000..24fd826
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs
@@ -0,0 +1,99 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using Microsoft.Kiota.Abstractions;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System.Threading;
+using System;
+namespace Phoenix.GalaxyLife.Api.Users.Steam
+{
+ ///
+ /// Builds and executes requests for operations under \Users\steam
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class SteamRequestBuilder : BaseRequestBuilder
+ {
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public SteamRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/steam{?steamId*}", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public SteamRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/steam{?steamId*}", rawUrl)
+ {
+ }
+ /// A
+ /// Cancellation token to use when cancelling requests
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#nullable restore
+#else
+ public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default)
+ {
+#endif
+ var requestInfo = ToGetRequestInformation(requestConfiguration);
+ return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
+ }
+ /// A
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default)
+ {
+#nullable restore
+#else
+ public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default)
+ {
+#endif
+ var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
+ requestInfo.Configure(requestConfiguration);
+ return requestInfo;
+ }
+ ///
+ /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
+ ///
+ /// A
+ /// The raw URL to use for the request builder.
+ public global::Phoenix.GalaxyLife.Api.Users.Steam.SteamRequestBuilder WithUrl(string rawUrl)
+ {
+ return new global::Phoenix.GalaxyLife.Api.Users.Steam.SteamRequestBuilder(rawUrl, RequestAdapter);
+ }
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class SteamRequestBuilderGetQueryParameters
+ #pragma warning restore CS1591
+ {
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ [QueryParameter("steamId")]
+ public string? SteamId { get; set; }
+#nullable restore
+#else
+ [QueryParameter("steamId")]
+ public string SteamId { get; set; }
+#endif
+ }
+ ///
+ /// Configuration for the request such as headers, query parameters, and middleware options.
+ ///
+ [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class SteamRequestBuilderGetRequestConfiguration : RequestConfiguration
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/UsersRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/UsersRequestBuilder.cs
new file mode 100644
index 0000000..0b5a9b9
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/UsersRequestBuilder.cs
@@ -0,0 +1,77 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions;
+using Phoenix.GalaxyLife.Api.Users.Count;
+using Phoenix.GalaxyLife.Api.Users.Get;
+using Phoenix.GalaxyLife.Api.Users.Name;
+using Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace;
+using Phoenix.GalaxyLife.Api.Users.Search;
+using Phoenix.GalaxyLife.Api.Users.Stats;
+using Phoenix.GalaxyLife.Api.Users.Steam;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System;
+namespace Phoenix.GalaxyLife.Api.Users
+{
+ ///
+ /// Builds and executes requests for operations under \Users
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class UsersRequestBuilder : BaseRequestBuilder
+ {
+ /// The count property
+ public global::Phoenix.GalaxyLife.Api.Users.Count.CountRequestBuilder Count
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Users.Count.CountRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The getPath property
+ public global::Phoenix.GalaxyLife.Api.Users.Get.GetRequestBuilder GetPath
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Users.Get.GetRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The name property
+ public global::Phoenix.GalaxyLife.Api.Users.Name.NameRequestBuilder Name
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Users.Name.NameRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The platformId property
+ public global::Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace.PlatformIdRequestBuilder PlatformId
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace.PlatformIdRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The search property
+ public global::Phoenix.GalaxyLife.Api.Users.Search.SearchRequestBuilder Search
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Users.Search.SearchRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The stats property
+ public global::Phoenix.GalaxyLife.Api.Users.Stats.StatsRequestBuilder Stats
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Users.Stats.StatsRequestBuilder(PathParameters, RequestAdapter);
+ }
+ /// The steam property
+ public global::Phoenix.GalaxyLife.Api.Users.Steam.SteamRequestBuilder Steam
+ {
+ get => new global::Phoenix.GalaxyLife.Api.Users.Steam.SteamRequestBuilder(PathParameters, RequestAdapter);
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// Path parameters for the request
+ /// The request adapter to use to execute the requests.
+ public UsersRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users", pathParameters)
+ {
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The raw URL to use for the request builder.
+ /// The request adapter to use to execute the requests.
+ public UsersRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users", rawUrl)
+ {
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/kiota-lock.json b/Phoenix.ApiWrapper/Generated/GalaxyLife/kiota-lock.json
new file mode 100644
index 0000000..a7db1eb
--- /dev/null
+++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/kiota-lock.json
@@ -0,0 +1,34 @@
+{
+ "descriptionHash": "88576DEA7F6C136F9310E75AE17D5119433B0FB1783449220787A2CC1048FF670365298F89B04E11939A78C5964B4A19D3903D6B3479193359F1E7ADAF84277A",
+ "descriptionLocation": "https://api.galaxylifegame.net/swagger/v1/swagger.json",
+ "lockFileVersion": "1.0.0",
+ "kiotaVersion": "1.30.0",
+ "clientClassName": "ApiClient",
+ "typeAccessModifier": "Public",
+ "clientNamespaceName": "Phoenix.GalaxyLife.Api",
+ "language": "CSharp",
+ "usesBackingStore": false,
+ "excludeBackwardCompatible": false,
+ "includeAdditionalData": true,
+ "disableSSLValidation": false,
+ "serializers": [
+ "Microsoft.Kiota.Serialization.Json.JsonSerializationWriterFactory",
+ "Microsoft.Kiota.Serialization.Text.TextSerializationWriterFactory",
+ "Microsoft.Kiota.Serialization.Form.FormSerializationWriterFactory",
+ "Microsoft.Kiota.Serialization.Multipart.MultipartSerializationWriterFactory"
+ ],
+ "deserializers": [
+ "Microsoft.Kiota.Serialization.Json.JsonParseNodeFactory",
+ "Microsoft.Kiota.Serialization.Text.TextParseNodeFactory",
+ "Microsoft.Kiota.Serialization.Form.FormParseNodeFactory"
+ ],
+ "structuredMimeTypes": [
+ "application/json",
+ "text/plain;q=0.9",
+ "application/x-www-form-urlencoded;q=0.2",
+ "multipart/form-data;q=0.1"
+ ],
+ "includePatterns": [],
+ "excludePatterns": [],
+ "disabledValidationRules": []
+}
\ No newline at end of file
diff --git a/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs b/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs
new file mode 100644
index 0000000..fede440
--- /dev/null
+++ b/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs
@@ -0,0 +1,29 @@
+using Microsoft.Kiota.Abstractions.Authentication;
+
+namespace Phoenix.ApiWrapper;
+
+public class KiotaAccessTokenProvider : IAccessTokenProvider
+{
+ private readonly Func> _acquireTokenAsync;
+
+ public KiotaAccessTokenProvider(
+ Func> acquireTokenAsync,
+ IEnumerable? allowedHosts)
+ {
+ _acquireTokenAsync = acquireTokenAsync ?? throw new ArgumentNullException(nameof(acquireTokenAsync));
+ AllowedHostsValidator = new AllowedHostsValidator();
+ if (allowedHosts is not null)
+ AllowedHostsValidator.AllowedHosts = allowedHosts.ToArray();
+ }
+
+ public AllowedHostsValidator AllowedHostsValidator { get; }
+
+ public async Task GetAuthorizationTokenAsync(
+ Uri uri,
+ Dictionary? additionalAuthenticationContext = null,
+ CancellationToken cancellationToken = default)
+ {
+ var token = await _acquireTokenAsync(cancellationToken).ConfigureAwait(false);
+ return token.Value;
+ }
+}
diff --git a/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj b/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj
new file mode 100644
index 0000000..5ecffed
--- /dev/null
+++ b/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj
@@ -0,0 +1,38 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Phoenix.ApiWrapper/PhoenixApiClient.cs b/Phoenix.ApiWrapper/PhoenixApiClient.cs
new file mode 100644
index 0000000..054a719
--- /dev/null
+++ b/Phoenix.ApiWrapper/PhoenixApiClient.cs
@@ -0,0 +1,340 @@
+using System.Collections.Concurrent;
+using System.Net.Http.Headers;
+using System.Text.Json;
+using Microsoft.Kiota.Abstractions;
+using Microsoft.Kiota.Abstractions.Authentication;
+using Microsoft.Kiota.Http.HttpClientLibrary;
+
+namespace Phoenix.ApiWrapper;
+
+public sealed class PhoenixApiClient
+{
+ private static readonly JsonSerializerOptions JsonOptions = new(JsonSerializerDefaults.Web);
+
+ private readonly HttpClient _oauthHttp;
+ private readonly PhoenixApiClientOptions _options;
+
+ private readonly ConcurrentDictionary _tokenCache = new();
+
+ private Phoenix.GalaxyLife.Api.ApiClient? _galaxyLife;
+
+ public PhoenixApiClient(HttpClient oauthHttpClient, PhoenixApiClientOptions options)
+ {
+ _oauthHttp = oauthHttpClient ?? throw new ArgumentNullException(nameof(oauthHttpClient));
+ _options = options ?? throw new ArgumentNullException(nameof(options));
+
+ if (_options.TokenEndpoint is null)
+ throw new ArgumentException("TokenEndpoint must be configured.", nameof(options));
+ if (string.IsNullOrWhiteSpace(_options.ClientId))
+ throw new ArgumentException("ClientId must be configured.", nameof(options));
+ if (string.IsNullOrWhiteSpace(_options.ClientSecret))
+ throw new ArgumentException("ClientSecret must be configured.", nameof(options));
+ }
+
+ ///
+ /// Typed Kiota client for the GalaxyLife API using client-credentials.
+ ///
+ public Phoenix.GalaxyLife.Api.ApiClient GalaxyLife =>
+ _galaxyLife ??= new Phoenix.GalaxyLife.Api.ApiClient(
+ CreateKiotaAdapterForClientCredentials(_options.GalaxyLifeBaseUrl, _options.GalaxyLifeScopes)
+ );
+
+ ///
+ /// Typed Kiota client for the GalaxyLife API using token exchange (on-behalf-of).
+ ///
+ public Phoenix.GalaxyLife.Api.ApiClient GalaxyLifeOnBehalfOf(string subjectToken) =>
+ new(
+ CreateKiotaAdapterOnBehalfOf(_options.GalaxyLifeBaseUrl!, subjectToken, _options.GalaxyLifeScopes, audience: null)
+ );
+
+ ///
+ /// Gets an access token using OAuth2 client credentials grant.
+ /// Tokens are cached until shortly before expiry.
+ ///
+ public Task GetClientCredentialsTokenAsync(
+ IEnumerable? scopes = null,
+ CancellationToken cancellationToken = default)
+ {
+ var scopeString = NormalizeScopes(scopes ?? _options.DefaultScopes);
+ var cacheKey = $"cc|{scopeString}";
+ return GetOrCreateTokenAsync(
+ cacheKey,
+ () => RequestClientCredentialsTokenAsync(scopeString, cancellationToken),
+ cancellationToken);
+ }
+
+ ///
+ /// Exchanges a subject token for a new access token (RFC 8693).
+ /// Only allowed if EnableTokenExchange is set for this client.
+ ///
+ public Task ExchangeOnBehalfOfAsync(
+ string subjectToken,
+ IEnumerable? scopes = null,
+ string? audience = null,
+ CancellationToken cancellationToken = default)
+ {
+ if (!_options.EnableTokenExchange)
+ throw new InvalidOperationException("Token exchange is not enabled for this client configuration.");
+
+ if (string.IsNullOrWhiteSpace(subjectToken))
+ throw new ArgumentException("Subject token must be provided.", nameof(subjectToken));
+
+ var scopeString = NormalizeScopes(scopes ?? _options.DefaultScopes);
+ var subjectHash = StableHash(subjectToken);
+ var cacheKey = $"xchg|{scopeString}|{audience}|{subjectHash}";
+
+ return GetOrCreateTokenAsync(
+ cacheKey,
+ () => RequestTokenExchangeAsync(subjectToken, scopeString, audience, cancellationToken),
+ cancellationToken);
+ }
+
+ ///
+ /// Creates an HttpClient that already has Authorization: Bearer set.
+ /// You can use this to call any API the token is valid for.
+ ///
+ public async Task CreateAuthenticatedHttpClientAsync(
+ Uri baseAddress,
+ IEnumerable? scopes = null,
+ CancellationToken cancellationToken = default)
+ {
+ var token = await GetClientCredentialsTokenAsync(scopes, cancellationToken).ConfigureAwait(false);
+
+ var client = new HttpClient
+ {
+ BaseAddress = baseAddress
+ };
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Value);
+ return client;
+ }
+
+ ///
+ /// Same as CreateAuthenticatedHttpClientAsync but using token exchange.
+ ///
+ public async Task CreateAuthenticatedHttpClientOnBehalfOfAsync(
+ Uri baseAddress,
+ string subjectToken,
+ IEnumerable? scopes = null,
+ string? audience = null,
+ CancellationToken cancellationToken = default)
+ {
+ var token = await ExchangeOnBehalfOfAsync(subjectToken, scopes, audience, cancellationToken).ConfigureAwait(false);
+
+ var client = new HttpClient
+ {
+ BaseAddress = baseAddress
+ };
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Value);
+ return client;
+ }
+
+ // --------------------
+ // Kiota adapter creation
+ // --------------------
+
+ private IRequestAdapter CreateKiotaAdapterForClientCredentials(Uri apiBaseUrl, IEnumerable? scopes)
+ {
+ var tokenProvider = new KiotaAccessTokenProvider(
+ acquireTokenAsync: ct => GetClientCredentialsTokenAsync(scopes, ct),
+ allowedHosts: GetAllowedHosts(apiBaseUrl));
+
+ var authProvider = new BaseBearerTokenAuthenticationProvider(tokenProvider);
+ var adapter = new HttpClientRequestAdapter(authProvider)
+ {
+ BaseUrl = apiBaseUrl.ToString().TrimEnd('/')
+ };
+
+ return adapter;
+ }
+
+ private IRequestAdapter CreateKiotaAdapterOnBehalfOf(Uri apiBaseUrl, string subjectToken, IEnumerable? scopes, string? audience)
+ {
+ var tokenProvider = new KiotaAccessTokenProvider(
+ acquireTokenAsync: ct => ExchangeOnBehalfOfAsync(subjectToken, scopes, audience, ct),
+ allowedHosts: GetAllowedHosts(apiBaseUrl));
+
+ var authProvider = new BaseBearerTokenAuthenticationProvider(tokenProvider);
+ var adapter = new HttpClientRequestAdapter(authProvider)
+ {
+ BaseUrl = apiBaseUrl.ToString().TrimEnd('/')
+ };
+
+ return adapter;
+ }
+
+ private string[] GetAllowedHosts(Uri apiBaseUrl) =>
+ _options.AllowedHosts is { Length: > 0 }
+ ? _options.AllowedHosts
+ : [apiBaseUrl.Host];
+
+ // --------------------
+ // Token plumbing
+ // --------------------
+
+ private async Task GetOrCreateTokenAsync(
+ string cacheKey,
+ Func> factory,
+ CancellationToken cancellationToken)
+ {
+ if (_tokenCache.TryGetValue(cacheKey, out var cached) && !cached.IsExpired(_options.ExpirySkew))
+ return cached.Token;
+
+ // Single-flight per key could be added later (SemaphoreSlim per key).
+ var token = await factory().ConfigureAwait(false);
+ _tokenCache[cacheKey] = new CachedToken(token);
+ return token;
+ }
+
+ private async Task RequestClientCredentialsTokenAsync(string scopeString, CancellationToken cancellationToken)
+ {
+ var form = new Dictionary
+ {
+ ["grant_type"] = "client_credentials",
+ ["client_id"] = _options.ClientId,
+ ["client_secret"] = _options.ClientSecret,
+ };
+
+ if (!string.IsNullOrWhiteSpace(scopeString))
+ form["scope"] = scopeString;
+
+ return await RequestTokenAsync(form, cancellationToken).ConfigureAwait(false);
+ }
+
+ private async Task RequestTokenExchangeAsync(
+ string subjectToken,
+ string scopeString,
+ string? audience,
+ CancellationToken cancellationToken)
+ {
+ var form = new Dictionary
+ {
+ ["grant_type"] = "urn:ietf:params:oauth:grant-type:token-exchange",
+ ["client_id"] = _options.ClientId,
+ ["client_secret"] = _options.ClientSecret,
+ ["subject_token"] = subjectToken,
+ ["subject_token_type"] = _options.SubjectTokenType ?? "urn:ietf:params:oauth:token-type:access_token",
+ };
+
+ if (!string.IsNullOrWhiteSpace(scopeString))
+ form["scope"] = scopeString;
+
+ if (!string.IsNullOrWhiteSpace(audience))
+ form["audience"] = audience;
+
+ if (!string.IsNullOrWhiteSpace(_options.RequestedTokenType))
+ form["requested_token_type"] = _options.RequestedTokenType;
+
+ return await RequestTokenAsync(form, cancellationToken).ConfigureAwait(false);
+ }
+
+ private async Task RequestTokenAsync(Dictionary form, CancellationToken cancellationToken)
+ {
+ using var request = new HttpRequestMessage(HttpMethod.Post, _options.TokenEndpoint)
+ {
+ Content = new FormUrlEncodedContent(form)
+ };
+
+ using var response = await _oauthHttp.SendAsync(request, cancellationToken).ConfigureAwait(false);
+ var payload = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false);
+
+ if (!response.IsSuccessStatusCode)
+ {
+ throw new HttpRequestException(
+ $"Token endpoint returned {(int)response.StatusCode} ({response.ReasonPhrase}). Payload: {payload}");
+ }
+
+ var token = JsonSerializer.Deserialize(payload, JsonOptions)
+ ?? throw new InvalidOperationException("Token endpoint returned an empty response.");
+
+ if (string.IsNullOrWhiteSpace(token.AccessToken))
+ throw new InvalidOperationException("Token endpoint response did not include access_token.");
+
+ var expiresInSeconds = token.ExpiresIn <= 0 ? _options.FallbackExpiresInSeconds : token.ExpiresIn;
+ var expiresAt = DateTimeOffset.UtcNow.AddSeconds(expiresInSeconds);
+
+ return new AccessToken(token.AccessToken, expiresAt, token.TokenType ?? "Bearer", token.Scope);
+ }
+
+ private static string NormalizeScopes(IEnumerable? scopes)
+ {
+ if (scopes is null) return string.Empty;
+
+ var list = scopes
+ .Where(s => !string.IsNullOrWhiteSpace(s))
+ .Select(s => s.Trim())
+ .Distinct(StringComparer.Ordinal)
+ .OrderBy(s => s, StringComparer.Ordinal)
+ .ToArray();
+
+ return string.Join(' ', list);
+ }
+
+ private static string StableHash(string value)
+ {
+ // Non-cryptographic stable hash to avoid storing full subject tokens in cache keys.
+ // (If you need stronger privacy guarantees, use SHA-256.)
+ unchecked
+ {
+ int hash = 23;
+ foreach (var ch in value)
+ hash = (hash * 31) + ch;
+ return hash.ToString("X", System.Globalization.CultureInfo.InvariantCulture);
+ }
+ }
+
+ // --------------------
+ // Models / options
+ // --------------------
+
+ public sealed class PhoenixApiClientOptions
+ {
+ public Uri? TokenEndpoint { get; init; }
+
+ public string ClientId { get; init; } = "";
+ public string ClientSecret { get; init; } = "";
+
+ /// Default scopes used when none are provided to methods.
+ public string[] DefaultScopes { get; init; } = [];
+
+ /// Enable RFC 8693 token exchange flows (only for allowed clients).
+ public bool EnableTokenExchange { get; init; }
+
+ /// Defaults to access token type if not set.
+ public string? SubjectTokenType { get; init; }
+
+ /// Optional requested_token_type (RFC 8693).
+ public string? RequestedTokenType { get; init; }
+
+ /// How early we refresh before the token actually expires.
+ public TimeSpan ExpirySkew { get; init; } = TimeSpan.FromSeconds(60);
+
+ /// If expires_in is missing/invalid, use this.
+ public int FallbackExpiresInSeconds { get; init; } = 300;
+
+ public string[]? AllowedHosts { get; init; }
+ public Uri? GalaxyLifeBaseUrl { get; init; }
+ public string[] GalaxyLifeScopes { get; init; } = [];
+ }
+
+ public sealed record AccessToken(string Value, DateTimeOffset ExpiresAtUtc, string TokenType, string? Scope);
+
+ private sealed record CachedToken(AccessToken Token)
+ {
+ public bool IsExpired(TimeSpan skew) => DateTimeOffset.UtcNow >= Token.ExpiresAtUtc.Subtract(skew);
+ }
+
+ private sealed class TokenEndpointResponse
+ {
+ public string? AccessToken { get; set; }
+ public int ExpiresIn { get; set; }
+ public string? TokenType { get; set; }
+ public string? Scope { get; set; }
+
+ // JSON property names (web defaults will map snake_case if configured accordingly in future,
+ // but we keep this simple by matching common casing via JsonSerializerDefaults.Web)
+ public string? access_token { get => AccessToken; set => AccessToken = value; }
+ public int expires_in { get => ExpiresIn; set => ExpiresIn = value; }
+ public string? token_type { get => TokenType; set => TokenType = value; }
+ public string? scope { get => Scope; set => Scope = value; }
+ }
+}
\ No newline at end of file
diff --git a/dotnet-tools.json b/dotnet-tools.json
new file mode 100644
index 0000000..5b4d81b
--- /dev/null
+++ b/dotnet-tools.json
@@ -0,0 +1,13 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "microsoft.openapi.kiota": {
+ "version": "1.30.0",
+ "commands": [
+ "kiota"
+ ],
+ "rollForward": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/GL.NET.sln b/src/GL.NET.sln
deleted file mode 100644
index ae5f723..0000000
--- a/src/GL.NET.sln
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.2.32630.192
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GL.NET", "GL.NET\GL.NET.csproj", "{D15F087E-6950-472D-9F2F-2971EB1B1C53}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsoleApp", "TestConsoleApp\TestConsoleApp.csproj", "{10F09C86-5E06-427E-915C-A2C49D8FF4A4}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D15F087E-6950-472D-9F2F-2971EB1B1C53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D15F087E-6950-472D-9F2F-2971EB1B1C53}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D15F087E-6950-472D-9F2F-2971EB1B1C53}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D15F087E-6950-472D-9F2F-2971EB1B1C53}.Release|Any CPU.Build.0 = Release|Any CPU
- {10F09C86-5E06-427E-915C-A2C49D8FF4A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {10F09C86-5E06-427E-915C-A2C49D8FF4A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {10F09C86-5E06-427E-915C-A2C49D8FF4A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {10F09C86-5E06-427E-915C-A2C49D8FF4A4}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {D9DF2F2D-E1B9-4CB6-902F-1BF8A14EA2B8}
- EndGlobalSection
-EndGlobal
diff --git a/src/GL.NET/ApiClient.cs b/src/GL.NET/ApiClient.cs
deleted file mode 100644
index 7ebc048..0000000
--- a/src/GL.NET/ApiClient.cs
+++ /dev/null
@@ -1,533 +0,0 @@
-using GL.NET.Entities;
-using Newtonsoft.Json;
-
-namespace GL.NET;
-
-public class ApiClient
-{
- protected HttpClient _client;
- protected const string _baseGlUrl = "https://api.galaxylifegame.net";
- protected const string _baseTelemetryUrl = "https://api.telemetry.galaxylifegame.net/api";
-
- public ApiClient(HttpClient client)
- {
- _client = client;
- }
-
- public event ErrorEventHandler? ErrorThrown;
-
- public async Task> GetServerStatus()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/status");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content)
- ?? new List() { new ServerStatus("Api Server", false, 0) };;
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List() { new ServerStatus("Api Server", false, 0) };
- }
- }
-
- public async Task GetUserById(string id)
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/users/get?id={id}");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject(content);
- }
- catch (Exception e)
- {
- ThrowError(e);
- return null;
- }
- }
-
- public async Task GetUserByName(string name)
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/users/name?name={name}");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject(content);
- }
- catch (Exception e)
- {
- ThrowError(e);
- return null;
- }
- }
-
- public async Task> SearchUserByName(string name)
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/users/search?name={name}");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task GetUserBySteamId(string id)
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/users/steam?steamId={id}");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject(content);
- }
- catch (Exception e)
- {
- ThrowError(e);
- return null;
- }
- }
-
- public async Task GetSteamIdByUserId(string id)
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/users/platformId?userId={id}");
- var content = await response.Content.ReadAsStringAsync();
-
- return content;
- }
- catch (Exception e)
- {
- ThrowError(e);
- return null;
- }
- }
-
- public async Task GetUserStats(string id)
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/users/stats?id={id}");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject(content);
- }
- catch (Exception e)
- {
- ThrowError(e);
- return null;
- }
- }
-
- public async Task GetAlliance(string name)
- {
- try
- {
- name = name.ToLower().Trim();
- var response = await _client.GetAsync($"{_baseGlUrl}/alliances/get?name={name}");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject(content);
- }
- catch (Exception e)
- {
- ThrowError(e);
- return null;
- }
- }
-
- public async Task> GetXpLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/xp");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task> GetXpFromAttackLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/xpFromAttack");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task> GetRivalsWonLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/rivalsWon");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task> GetWarpointLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/warpoints");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task> GetAllianceWarpointLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Alliances/warpointLb");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task> GetChipsLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/chips");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task> GetChipsSpentLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/chipsSpent");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task> GetFriendsHelpedLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/friendsHelped");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List();
- }
- }
-
- public async Task> GetGiftsReceivedLeaderboard()
- {
- try
- {
- var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/giftsReceived");
- var content = await response.Content.ReadAsStringAsync();
-
- return JsonConvert.DeserializeObject>(content) ?? new List();
- }
- catch (Exception e)
- {
- ThrowError(e);
- return new List